public void When_TryToGetQuantityOfNotExistingBook_Expect_Exception() { var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, null); store.Import(Setup.GetRealStoreJson); Assert.Throws <ArgumentException>(() => store.Quantity(Setup.NotExistingBookName)); }
public void When_GetQuantityOfExistingBook_Expect_ItsQuantity() { JsonInMemoryStoreRepository store = Setup.InitFullStore(); int quantity = store.Quantity("Ayn Rand - FountainHead"); Assert.AreEqual(10, quantity); }
public void When_TryToImportSameCatalog_Expect_Exception() { var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, null); store.Import(Setup.GetRealStoreJson); Assert.Throws <ArgumentException>(() => store.Import(Setup.Catalog_Goblet)); }
public void When_TryToImportNullJsonSchema_Expect_Exception() { var store = new JsonInMemoryStoreRepository(null, null); var ex = Assert.Throws <ArgumentNullException>(() => store.Import(null)); Assert.AreEqual("json", ex.ParamName); }
public void When_TryToBuyNotExistingBook_Expect_Exception() { var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, null); store.Import(Setup.GetRealStoreJson); Assert.Throws <ArgumentException>(() => store.Buy("Jules Verne - Journey to the Center of the Earth")); }
internal static JsonInMemoryStoreRepository InitFullStore() { var calcService = new BasketCalcTechRule(); var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, calcService); store.Import(Setup.GetRealStoreJson); return(store); }
public void When_ImportGoodJsonAndGoodSchema_Expect_Success() { var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, null); store.Import(Setup.GetRealStoreJson); Assert.AreEqual(3, store.Categories.Count); Assert.AreEqual(5, store.Catalogs.Count); }
public void When_TryToImportEmptyJson_Expect_Exception() { var store = new JsonInMemoryStoreRepository("{}", null); var ex = Assert.Throws <Newtonsoft.Json.JsonReaderException>(() => store.Import(string.Empty)); Assert.AreEqual(0, ex.LineNumber); Assert.AreEqual(0, ex.LinePosition); }
public void When_TryToImportBadJsonSchema_Expect_Exception() { var store = new JsonInMemoryStoreRepository(Setup.BadJson, null); var ex = Assert.Throws <Newtonsoft.Json.JsonReaderException>(() => store.Import(null)); Assert.AreEqual(3, ex.LineNumber); Assert.AreEqual(0, ex.LinePosition); }
public void When_CalculateBasket_Expect_CorrectResult() { JsonInMemoryStoreRepository store = Setup.InitFullStore(); double quantity = store.Buy( "J.K Rowling - Goblet Of fire", "Isaac Asimov - Foundation"); Assert.AreEqual(24, quantity); }
public void When_TryToGetQuantityOfExistingBooks_Expect_Success() { var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, null); store.Import(Setup.GetRealStoreJson); int quantity = store.Quantity("Isaac Asimov - Foundation"); Assert.AreEqual(1, quantity); }
public void When_CalculateBasketMultipleBooks_Expect_OnlyFirstBookHaveDiscount() { JsonInMemoryStoreRepository store = Setup.InitFullStore(); double quantity = store.Buy( "J.K Rowling - Goblet Of fire", "Robin Hobb - Assassin Apprentice", "Robin Hobb - Assassin Apprentice"); Assert.AreEqual(30, quantity); }
public void When_CalculateBasketMultipleBooks_Expect_OnlyFirstBookHaveDiscount_Example2() { JsonInMemoryStoreRepository store = Setup.InitFullStore(); double quantity = store.Buy( "Ayn Rand - FountainHead", "Isaac Asimov - Foundation", "Isaac Asimov - Robot series", "J.K Rowling - Goblet Of fire", "J.K Rowling - Goblet Of fire", "Robin Hobb - Assassin Apprentice", "Robin Hobb - Assassin Apprentice"); Assert.AreEqual(69.95, quantity); }
public void When_TryToBuyExistingBooks_Expect_Success() { decimal expectedPrice = 1.23m; var mock = new Mock <IBasketCalculator>(); mock.Setup(s => s.CalculateCatalogPrice(It.IsAny <IReadOnlyCollection <Catalog> >())).Returns(expectedPrice); var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, mock.Object); store.Import(Setup.GetRealStoreJson); double basketPrice = store.Buy("Isaac Asimov - Foundation"); Assert.AreEqual(expectedPrice, basketPrice); }
public void When_TryToImportJsonWhichNotFitSchema_Expect_Exception() { var store = new JsonInMemoryStoreRepository("{\"required\": [\"a\"]}", null); Assert.Throws <ArgumentException>(() => store.Import("{\"b\":null}")); }
public void When_TryToGetQuantityButStoreIsEmpty_Expect_Exception() { var store = new JsonInMemoryStoreRepository("{}", null); Assert.Throws <Exception>(() => store.Quantity(null)); }