diff --git a/webapp/model/formatter.js b/webapp/model/formatter.js index 5824e7f..bff4c77 100644 --- a/webapp/model/formatter.js +++ b/webapp/model/formatter.js @@ -14,5 +14,8 @@ sap.ui.define([], function () { } return parseFloat(sValue).toFixed(2); }, + priceState: function (){ + + } }; }); diff --git a/webapp/test/unit/model/formatter.js b/webapp/test/unit/model/formatter.js index 1ed2ac1..8e0bcd3 100644 --- a/webapp/test/unit/model/formatter.js +++ b/webapp/test/unit/model/formatter.js @@ -1,37 +1,110 @@ /*global QUnit*/ -sap.ui.define([ - "com/mrb/UI5-Testing/model/formatter" -], function (formatter) { - "use strict"; +sap.ui.define(["com/mrb/UI5-Testing/model/formatter"], function (formatter) { + "use strict"; - QUnit.module("Number unit"); + QUnit.module("Number unit"); - function numberUnitValueTestCase(assert, sValue, fExpectedNumber) { - // Act - var fNumber = formatter.numberUnit(sValue); + function numberUnitValueTestCase(assert, sValue, fExpectedNumber) { + // Act + var fNumber = formatter.numberUnit(sValue); - // Assert - assert.strictEqual(fNumber, fExpectedNumber, "The rounding was correct"); - } + // Assert + assert.strictEqual(fNumber, fExpectedNumber, "The rounding was correct"); + } - QUnit.test("Should round down a 3 digit number", function (assert) { - numberUnitValueTestCase.call(this, assert, "3.123", "3.12"); - }); + QUnit.test("Should round down a 3 digit number", function (assert) { + numberUnitValueTestCase.call(this, assert, "3.123", "3.12"); + }); - QUnit.test("Should round up a 3 digit number", function (assert) { - numberUnitValueTestCase.call(this, assert, "3.128", "3.13"); - }); + QUnit.test("Should round up a 3 digit number", function (assert) { + numberUnitValueTestCase.call(this, assert, "3.128", "3.13"); + }); - QUnit.test("Should round a negative number", function (assert) { - numberUnitValueTestCase.call(this, assert, "-3", "-3.00"); - }); + QUnit.test("Should round a negative number", function (assert) { + numberUnitValueTestCase.call(this, assert, "-3", "-3.00"); + }); - QUnit.test("Should round an empty string", function (assert) { - numberUnitValueTestCase.call(this, assert, "", ""); - }); + QUnit.test("Should round an empty string", function (assert) { + numberUnitValueTestCase.call(this, assert, "", ""); + }); - QUnit.test("Should round a zero", function (assert) { - numberUnitValueTestCase.call(this, assert, "0", "0.00"); - }); + QUnit.test("Should round a zero", function (assert) { + numberUnitValueTestCase.call(this, assert, "0", "0.00"); + }); + + QUnit.module("Price State"); + + // Requirements: + // price < 50: Status is green (Success) + // price >= 50 and price < 250: Status is normal (None) + // price >= 250 and price < 2000: Status is orange (Warning) + // price >= 2000: Status is red (Error) + + function priceStateTestCase(oOptions) { + //Act + var sState = formatter.priceState(oOptions.price); + + //Assert + oOptions.assert.strictEqual( + sState, + oOptions.expected, + "The price state was correct" + ); + } + + QUnit.test( + "Should format the products with a price lower than 50 to Success", + function (assert) { + priceStateTestCase.call(this, { + assert: assert, + price: 42, + expected: "Success", + }); + } + ); + + QUnit.test( + "Should format the products with a price of 50 to Normal", + function (assert) { + priceStateTestCase.call(this, { + assert: assert, + price: 50, + expected: "None", + }); + } + ); + + QUnit.test( + "Should format the products with a price between 50 and 250 to Normal", + function (assert) { + priceStateTestCase.call(this, { + assert: assert, + price: 112, + expected: "None", + }); + } + ); + + QUnit.test( + "Should format the products with a price between 250 and 2000 to Warning", + function (assert) { + priceStateTestCase.call(this, { + assert: assert, + price: 798, + expected: "Warning", + }); + } + ); + + QUnit.test( + "Should format the products with a price higher than 2000 to Error", + function (assert) { + priceStateTestCase.call(this, { + assert: assert, + price: 2001, + expected: "Error", + }); + } + ); });