コード例 #1
0
 public void SalesOrders_SalesOrdersIsCalled_RepositoryIsEmpty()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.SalesOrders, Is.Empty);
     }
 }
コード例 #2
0
 public void SalesOrders_SalesOrdersIsCalled_IsTypeOfDbSetSalesOrder()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.SalesOrders, Is.TypeOf <DbSet <SalesOrder> >());
     }
 }
コード例 #3
0
 public void Transactions_TransactionsIsCalled_RepositoryIsEmpty()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.Transactions, Is.Empty);
     }
 }
コード例 #4
0
 public void Orderlines_OrderlinesIsCalled_IsTypeOfDbSetOrderlines()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.OrderLines, Is.TypeOf <DbSet <OrderLine> >());
     }
 }
コード例 #5
0
        public void Update_ProductIsUpdated_UpdatedProductCanBeFoundInDb()
        {
            var testProduct = new Product("Kildevand", 18, true);

            using (var context = new CashRegisterContext())
            {
                context.Products.Add(testProduct);
                context.SaveChanges();
            }

            using (var context = new CashRegisterContext())
            {
                var uut = new Repository <Product>(context);

                var modifiedProduct = context.Products.FirstOrDefault(p => p.Id == 1);
                modifiedProduct.Price = 20;

                uut.Update(modifiedProduct);
                context.SaveChanges();
            }

            using (var context = new CashRegisterContext())
            {
                var modifiedProduct = context.Products.FirstOrDefault(p => p.Id == 1);

                var result = context.Products.FirstOrDefault(p => p.Id == 1);
                Assert.That(modifiedProduct.Price, Is.EqualTo(20));
            }
        }
コード例 #6
0
        public async Task Add_Banknotes_Cout_To_Database_Object_Values()
        {
            var databaseName = nameof(Add_Banknotes_Cout_To_Database_Object_Values);

            var options = CashRegisterService_Utilities.GetOptions(databaseName);

            var banknotesDTO = new BanknotesDTO()
            {
                Fifty = 5, Twenty = 2, Ten = 3, Five = 6, Two = 4, One = 9
            };

            using (var actAndAssertContext = new CashRegisterContext(options))
            {
                var sut = new CashRegisterService(actAndAssertContext);

                var response = await sut.Deposit(banknotesDTO);

                Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Fifty, 5);
                Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Twenty, 2);
                Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Ten, 3);
                Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Five, 6);
                Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().Two, 4);
                Assert.AreEqual(actAndAssertContext.Banknotes.FirstOrDefault().One, 9);
            };
        }
コード例 #7
0
        public void Get_ProductIsRequestedWithFilteredClauseWithoutLazyLoading_ProductCollectionContainsNoProductList()
        {
            var testProduct1 = new Product("Kildevand", 18, true);
            var testProduct2 = new Product("Øl", 20, false);

            var testProductGroup = new ProductGroup()
            {
                Name = "Drikkevarer"
            };

            testProductGroup.Products.Add(testProduct1);
            testProductGroup.Products.Add(testProduct2);

            using (var context = new CashRegisterContext())
            {
                context.ProductGroups.Add(testProductGroup);
                context.SaveChanges();
            }

            using (var context = new CashRegisterContext())
            {
                context.Configuration.LazyLoadingEnabled = false;
                var uut    = new Repository <ProductGroup>(context);
                var result = uut.Get().ElementAt(0);
                Assert.That(result.Products.Count, Is.EqualTo(0));
            }
        }
コード例 #8
0
        public void Get_ProductIsRequestedWithEmptyFilteredClause_ArgumentExceptionIsThrown()
        {
            var testProduct1 = new Product("Kildevand", 18, true);
            var testProduct2 = new Product("Øl", 20, false);

            var testProductGroup = new ProductGroup()
            {
                Name = "Drikkevarer"
            };

            testProductGroup.Products.Add(testProduct1);
            testProductGroup.Products.Add(testProduct2);

            using (var context = new CashRegisterContext())
            {
                context.ProductGroups.Add(testProductGroup);
                context.SaveChanges();
            }

            using (var context = new CashRegisterContext())
            {
                var uut    = new Repository <ProductGroup>(context);
                var filter = new[] { "" };
                Assert.That(() => uut.Get(null, null, filter).ElementAt(0), Throws.ArgumentException);
            }
        }
コード例 #9
0
 public void Products_ProductsIsCalled_RepositoryIsEmpty()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.Products, Is.Empty);
     }
 }
コード例 #10
0
 public void Orderlines_OrderlinesIsCalled_RepositoryIsEmpty()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.OrderLines, Is.Empty);
     }
 }
コード例 #11
0
        public async Task Return_OK_Status_Code_When_Successful()
        {
            var databaseName = nameof(Return_OK_Status_Code_When_Successful);

            var options = CashRegisterService_Utilities.GetOptions(databaseName);

            // Arrange
            var context = new CashRegisterContext(options);

            var banknote = new Banknotes()
            {
                Fifty = 1,
                One   = 1,
            };

            context.Banknotes.Add(banknote);

            context.SaveChanges();


            var sut = new CashRegisterService(context);

            var withdrawAmount = 51;
            var response       = await sut.HandleCashWithdraw(withdrawAmount);

            Assert.IsTrue(response.StatusCode == 200);
        }
コード例 #12
0
        public async Task Update_Database_With_Withdrawn_Banknotes()
        {
            var databaseName = nameof(Update_Database_With_Withdrawn_Banknotes);

            var options = CashRegisterService_Utilities.GetOptions(databaseName);

            // Arrange
            var context = new CashRegisterContext(options);

            var banknote = new Banknotes()
            {
                Fifty = 1,
                One   = 1,
            };

            context.Banknotes.Add(banknote);

            context.SaveChanges();


            // Act
            var sut = new CashRegisterService(context);

            var withdrawAmount = 51;
            var response       = await sut.HandleCashWithdraw(withdrawAmount);

            // Assert
            using (var actAndAssertContext = new CashRegisterContext(options))
            {
                Assert.IsTrue(actAndAssertContext.Banknotes.FirstOrDefault().Fifty == 0);
                Assert.IsTrue(actAndAssertContext.Banknotes.FirstOrDefault().One == 0);
            };
        }
コード例 #13
0
        public async Task Return_Model_With_Withdrawn_Banknotes()
        {
            var databaseName = nameof(Return_Model_With_Withdrawn_Banknotes);

            var options = CashRegisterService_Utilities.GetOptions(databaseName);

            // Arrange
            var context = new CashRegisterContext(options);

            var banknote = new Banknotes()
            {
                Fifty = 1,
                One   = 1,
            };

            context.Banknotes.Add(banknote);

            context.SaveChanges();


            var sut = new CashRegisterService(context);

            var withdrawAmount = 51;
            var response       = await sut.HandleCashWithdraw(withdrawAmount);

            Assert.IsNotNull(response.Model);
        }
コード例 #14
0
        public async Task Return_Failure_Message_When_Banknotes_Cannot_Fulfil_Withdraw()
        {
            var databaseName = nameof(Return_Failure_Message_When_Banknotes_Cannot_Fulfil_Withdraw);

            var options = CashRegisterService_Utilities.GetOptions(databaseName);

            // Arrange
            var context = new CashRegisterContext(options);

            var banknote = new Banknotes()
            {
                Fifty = 1,
                One   = 1,
            };

            context.Banknotes.Add(banknote);

            context.SaveChanges();


            var sut = new CashRegisterService(context);

            var withdrawAmount = 41;
            var response       = await sut.HandleCashWithdraw(withdrawAmount);

            Assert.IsTrue(response.Message == Messages.BanknotesCannotFulfilPayment);
        }
コード例 #15
0
ファイル: App.xaml.cs プロジェクト: KasperSK/TripleA
        /// <summary>
        /// Startup method for the application.
        /// </summary>
        /// <param name="e">The arguments sent with the event.</param>
        protected override void OnStartup(StartupEventArgs e)
        {
            LogFactory.Configure("cash.log", true);
            IDatabaseInitializer <CashRegisterContext> seed;

            // Empty
            seed = null;

            // Kalle Seed
            // seed = new CashProductInitializer();

            // Lærke Seed
            seed = new FullProductInitializer();

            using (var contex = new CashRegisterContext(seed))
            {
                contex.Database.Initialize(true);
            }

            base.OnStartup(e);
            Window win       = new MainWindow();
            var    salesCtrl = SalesFactory.GuiSalesController;

            win.DataContext = new MainViewModel(salesCtrl);
            win.Show();
        }
コード例 #16
0
 public void Transactions_TransactionsIsCalled_IsTypeOfDbSetTransaction()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.Transactions, Is.TypeOf <DbSet <Transaction> >());
     }
 }
コード例 #17
0
 public void ProductGroups_ProductGroupsIsCalled_IsTypeOfDbSetProductGroup()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.ProductGroups, Is.TypeOf <DbSet <ProductGroup> >());
     }
 }
コード例 #18
0
 public void Discounts_DiscountsIsCalled_IsTypeOfDbSetDiscount()
 {
     using (var uut = new CashRegisterContext())
     {
         Assert.That(uut.Discounts, Is.TypeOf <DbSet <Discount> >());
     }
 }
コード例 #19
0
 public void TransactionRepository_TransactionRepositoryIsCalled_IsTypeOfRepositoryTransaction()
 {
     using (var context = new CashRegisterContext())
     {
         var uut = new UnitOfWork(context, _dalFacade);
         Assert.That(uut.TransactionRepository, Is.TypeOf <Repository <Transaction> >());
     }
 }
コード例 #20
0
 public void SalesOrderRepository_SalesOrderRepositoryIsCalled_IsTypeOfRepositorySalesOrder()
 {
     using (var context = new CashRegisterContext())
     {
         var uut = new UnitOfWork(context, _dalFacade);
         Assert.That(uut.SalesOrderRepository, Is.TypeOf <Repository <SalesOrder> >());
     }
 }
コード例 #21
0
 public void ProductTabRepository_ProductTabRepositoryIsCalled_IsTypeOfRepositoryProductTab()
 {
     using (var context = new CashRegisterContext())
     {
         var uut = new UnitOfWork(context, _dalFacade);
         Assert.That(uut.ProductTabRepository, Is.TypeOf <Repository <ProductTab> >());
     }
 }
コード例 #22
0
 public void OrderLineRepository_OrderLineRepositoryIsCalled_IsTypeOfOrderLineDiscount()
 {
     using (var context = new CashRegisterContext())
     {
         var uut = new UnitOfWork(context, _dalFacade);
         Assert.That(uut.OrderLineRepository, Is.TypeOf <Repository <OrderLine> >());
     }
 }
コード例 #23
0
 public void DiscountRepository_DiscountRepositoryIsCalled_IsTypeOfRepositoryDiscount()
 {
     using (var context = new CashRegisterContext())
     {
         var uut = new UnitOfWork(context, _dalFacade);
         Assert.That(uut.DiscountRepository, Is.TypeOf <Repository <Discount> >());
     }
 }
コード例 #24
0
 public void GetById_ProductWithId1IsRequestedWithNoProductsInDb_NoProductIsReturnedFromDb()
 {
     using (var context = new CashRegisterContext())
     {
         var uut    = new Repository <Product>(context);
         var result = uut.GetById((long)1);
         Assert.That(result, Is.EqualTo(null));
     }
 }
コード例 #25
0
ファイル: App.xaml.cs プロジェクト: Romedov/GradProject
 public App(string dbPath)
 {
     using (var db = new CashRegisterContext(dbPath))
     {
         db.InitializeDatabase();
     }
     InitializeComponent();
     MainPage = new LoginView();
 }
コード例 #26
0
 public void Get_ProductsIsRequestedWhenNoProductsInDb_ProductPriceIsInCollectionFromDb()
 {
     using (var context = new CashRegisterContext())
     {
         var uut    = new Repository <Product>(context);
         var result = uut.Get();
         Assert.That(result, Is.Empty);
     }
 }
コード例 #27
0
        public void Dispose_WhenDisposed_DalFacadeReturnUnitOfWorkIsCalled()
        {
            var context = new CashRegisterContext();

            using (var uut = new UnitOfWork(context, _dalFacade))
            {
            }

            _dalFacade.Received(1).ReturnUnitOfWork();
        }
コード例 #28
0
        public void Dispose_WhenDisposed_InvalidOperationExceptionIsThrown()
        {
            var context = new CashRegisterContext();

            using (var uut = new UnitOfWork(context, _dalFacade))
            {
            }

            Assert.That(() => context.Products.Find((long)1), Throws.InvalidOperationException);
        }
コード例 #29
0
 public void SetUp()
 {
     using (var uut = new CashRegisterContext())
     {
         if (uut.Database.Exists())
         {
             uut.Database.Delete();
         }
     }
 }
コード例 #30
0
        public void SetUp()
        {
            _dalFacade = Substitute.For <IDalFacade>();

            using (var uut = new CashRegisterContext())
            {
                if (uut.Database.Exists())
                {
                    uut.Database.Delete();
                }
            }
        }