Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  1. describe("Warehouse functionality", () => {
  2. it("correct param", () => {
  3. let warehouse = new Warehouse(100);
  4. warehouse.addProduct('Food', 'Bread', 11);
  5. warehouse.addProduct('Food', 'tea', 13);
  6. warehouse.addProduct('Food', 'ananas', 5);
  7. let expected = '{"tea":13,"Bread":11,"ananas":5}';
  8. let actual = JSON.stringify(warehouse.orderProducts('Food'));
  9. assert.equal(actual, expected);
  10. });
  11. it("Should check the instanceof - 1", () => {
  12. const warehouse = new Warehouse(26);
  13. expect(warehouse).to.be.instanceOf(Warehouse);
  14. });
  15. it("Should trow error -> no capacity", () => {
  16. let errorMessage = 'Invalid given warehouse space';
  17. expect(() => new Warehouse()).to.Throw(errorMessage);
  18. });
  19. it("Should trow error -> capacity !== number", () => {
  20. let errorMessage = 'Invalid given warehouse space';
  21. expect(() => new Warehouse("max")).to.Throw(errorMessage);
  22. });
  23. it("Should trow error -> capacity === 0", () => {
  24. let errorMessage = 'Invalid given warehouse space';
  25. expect(() => new Warehouse(0)).to.Throw(errorMessage);
  26. });
  27. it("Should trow error -> capacity < 0", () => {
  28. let errorMessage = 'Invalid given warehouse space';
  29. expect(() => new Warehouse(-5)).to.Throw(errorMessage);
  30. });
  31. it("Should check the properties", () => {
  32. const warehouse = new Warehouse(16);
  33. expect(warehouse).to.have.property("addProduct");
  34. expect(warehouse).to.have.property("orderProducts");
  35. expect(warehouse).to.have.property("occupiedCapacity");
  36. expect(warehouse).to.have.property("revision");
  37. expect(warehouse).to.have.property("scrapeAProduct");
  38. });
  39. it("addProduct1.", () => {
  40. const warehouse = new Warehouse(20);
  41. const expected = warehouse.addProduct("Food", "sausage", 5);
  42. expect(expected).to.be.deep.equal({sausage: 5});
  43. });
  44. it("addProduct2. Not enough warehouse space", () => {
  45. const warehouse = new Warehouse(20);
  46. const errorMessage = "There is not enough space or the warehouse is already full";
  47. expect(() => (warehouse.addProduct("Food", "sausage", 25))).to.throw(errorMessage);
  48. });
  49. it("addProduct3. Should throw error -> wrong type params. Not enough warehouse space", () => {
  50. const warehouse = new Warehouse(20);
  51. const errorMessage = "There is not enough space or the warehouse is already full";
  52. expect(() => (warehouse.addProduct("Food", 4, "monument"))).to.throw(errorMessage);
  53. });
  54. it("addProduct4. Should throw error -> wrong type params. Not enough warehouse space", () => {
  55. const warehouse = new Warehouse(10);
  56. const product1 = warehouse.addProduct("Food", "sausage", 5);
  57. const product2 = warehouse.addProduct("Food", "sausage", 5);
  58. const errorMessage = "There is not enough space or the warehouse is already full";
  59. expect(() => (warehouse.addProduct("Food", 4, "monument"))).to.throw(errorMessage);
  60. });
  61. it("orderProducts1. Should order the products in desc order by the quantity", () => {
  62. const warehouse = new Warehouse(50);
  63. warehouse.addProduct("Food", "sausage", 5);
  64. warehouse.addProduct("Food", "milk", 12);
  65. warehouse.addProduct("Food", "eggs", 3);
  66. expect(warehouse.orderProducts("Food")).to.be.deep.equal({ milk: 12, sausage: 5, eggs: 3 });
  67. });
  68. it("orderProducts2. Should order the products in desc order by the quantity", () => {
  69. const warehouse = new Warehouse(50);
  70. warehouse.addProduct("Food", "sausage", 5);
  71. warehouse.addProduct("Food", "sausage", 5);
  72. warehouse.addProduct("Food", "milk", 5);
  73. warehouse.addProduct("Drink", "eggs", 5);
  74. expect(warehouse.orderProducts("Food")).to.be.deep.equal({ sausage: 10, milk: 5 });
  75. });
  76. it("occupiedCapacity() - 1. Should return a number", () => {
  77. const warehouse = new Warehouse(50);
  78. warehouse.addProduct("Food", "sausage", 5);
  79. warehouse.addProduct("Drink", "milk", 5);
  80. warehouse.addProduct("Food", "eggs", 5);
  81. expect(warehouse.occupiedCapacity()).to.be.deep.equal(15);
  82. });
  83. it("scrapeAProduct - 1.", () => {
  84. const warehouse = new Warehouse(50);
  85. warehouse.addProduct("Food", "sausage", 5);
  86. warehouse.addProduct("Drink", "milk", 5);
  87. warehouse.addProduct("Food", "eggs", 5);
  88. warehouse.scrapeAProduct("milk", 3);
  89. expect(warehouse.occupiedCapacity()).to.be.deep.equal(12);
  90. });
  91. it("scrapeAProduct - 2.", () => {
  92. const warehouse = new Warehouse(50);
  93. warehouse.addProduct("Food", "sausage", 5);
  94. warehouse.addProduct("Drink", "milk", 5);
  95. warehouse.addProduct("Food", "eggs", 5);
  96. expect( () => (warehouse.scrapeAProduct("orange", 3))).to.be.Throw("orange do not exists");
  97. });
  98. it("scrapeAProduct - 3.", () => {
  99. const warehouse = new Warehouse(50);
  100. warehouse.addProduct("Drink", "milk", 5);
  101. expect( warehouse.scrapeAProduct("milk", 10)).to.be.deep.equal( { milk: 0 });
  102. });
  103. it("revision() - 1. Should return all products", () => {
  104. const warehouse = new Warehouse(20);
  105. warehouse.addProduct("Food", "sausage", 5);
  106. warehouse.addProduct("Food", "milk", 5);
  107. warehouse.addProduct("Drink", "eggs", 5);
  108. expect(warehouse.revision()).to.be.equal("Product type - [Food]\n" +
  109. "- sausage 5\n" +
  110. "- milk 5\n" +
  111. "Product type - [Drink]\n" +
  112. "- eggs 5");
  113. });
  114. it("revision() - 2. Should throw error - empty warehouse", () => {
  115. const warehouse = new Warehouse(20);
  116. expect(warehouse.revision()).to.be.equal("The warehouse is empty");
  117. });
  118. it("revision() - 3. Should return all products", () => {
  119. const warehouse = new Warehouse(20);
  120. warehouse.addProduct("Food", "sausage", 5);
  121. warehouse.addProduct("Food", "sausage", 5);
  122. expect(warehouse.revision()).to.be.equal("Product type - [Food]\n" +
  123. "- sausage 10\n" +
  124. "Product type - [Drink]");
  125. });
  126. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement