public void When_TryToGetQuantityOfNotExistingBook_Expect_Exception()
        {
            var store = new JsonInMemoryStoreRepository(Setup.GetRealJsonSchema, null);

            store.Import(Setup.GetRealStoreJson);

            Assert.Throws <ArgumentException>(() => store.Quantity(Setup.NotExistingBookName));
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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));
        }