Skip to content

Instantly share code, notes, and snippets.

@jasongorman
Last active July 25, 2019 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasongorman/8143e1fb41b92f2b9ea88745456705cb to your computer and use it in GitHub Desktop.
Save jasongorman/8143e1fb41b92f2b9ea88745456705cb to your computer and use it in GitHub Desktop.
class OutOfStockError extends Error {
}
class CD {
constructor(price, stock) {
this.price = price;
this.stock = stock;
}
buy(payments, creditCard) {
if(this.stock == 0){
throw new OutOfStockError();
}
let paymentAccepted = payments.process(this.price, creditCard);
if(paymentAccepted){
this.stock--;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment