コード例 #1
0
        public void GetByCustomerId_WhenPassedKnownCustomerId_ShouldReturnOrderRecordForSpecified()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Orders = _testOrders
            };
            var theRepository = new OrdersRepository(new DatabaseFactory(testDataContext));

            var ordersServicesInst = new OrdersServices(theRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var ordersController = new OrdersController(ordersServicesInst);

            // Act
            var response = ordersController.GetByCustomerId(1);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkObjectResult));

            var foundOrders = (List <OrderRecord>)((OkObjectResult)response).Value;

            Assert.IsInstanceOfType(foundOrders, typeof(List <OrderRecord>));
        }
コード例 #2
0
        public void Get_WhenCalledWithNoParameters_ShouldReturnAllOrders()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Orders = _testOrders
            };
            var repository = new OrdersRepository(new DatabaseFactory(testDataContext));

            var ordersServicesInst = new OrdersServices(repository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var ordersController = new OrdersController(ordersServicesInst);

            // Act
            var response = ordersController.Get();

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(ObjectResult));

            var items = (List <OrderRecord>)((ObjectResult)response).Value;

            Assert.AreEqual(1, items.Count);
        }
コード例 #3
0
        public void GetById_WhenExistingIdPassed_ShouldReturnCorrectItem()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Orders = _testOrders
            };
            var theRepository = new OrdersRepository(new DatabaseFactory(testDataContext));

            var ordersServicesInst = new OrdersServices(theRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var ordersController = new OrdersController(ordersServicesInst);

            // Act
            var response = ordersController.GetById(1);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkObjectResult));

            var foundOrder = (OrderRecord)((OkObjectResult)response).Value;

            Assert.IsInstanceOfType(foundOrder, typeof(OrderRecord));
        }
コード例 #4
0
        public void GetByDate_WhenPassedAValidDate_ShouldReturnAnyOrdersMatchingForDate()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Orders = _testOrders
            };
            var theRepository = new OrdersRepository(new DatabaseFactory(testDataContext));

            var ordersServicesInst = new OrdersServices(theRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var ordersController = new OrdersController(ordersServicesInst);

            // Act
            var response = ordersController.GetByDate(new DateTime(2019, 11, 18, 3, 14, 27));

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkObjectResult));

            var foundOrders = (List <OrderRecord>)((OkObjectResult)response).Value;

            Assert.IsInstanceOfType(foundOrders, typeof(List <OrderRecord>));
        }
コード例 #5
0
        public void Get_WhenCalledWithNoParam_ShouldListAllCustomers()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Customers = _testCustomers
            };
            var customersRepository = new CustomersRepository(new DatabaseFactory(testDataContext));

            var customersServicesInst = new CustomersServices(customersRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var customersController = new CustomersController(customersServicesInst);

            // Act
            var response = customersController.Get();

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(OkObjectResult));

            var items = (List <Customer>)((OkObjectResult)response).Value;

            Assert.AreEqual(3, items.Count);
        }
コード例 #6
0
        public void Get_WhenCalledWithNoParameters_ShouldReturnOkObjectResult()
        {
            // Arrange
            var testDataContext = new DataFileData();
            var repository      = new OrdersRepository(new DatabaseFactory(testDataContext));

            var ordersServicesInst = new OrdersServices(repository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var ordersController = new OrdersController(ordersServicesInst);

            // Act
            var response = ordersController.Get();

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(ObjectResult));
        }
コード例 #7
0
        public void Post_WhenPassedNullProduct_ShouldReturnBadRequest()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Products = _testProducts
            };
            var productsRepository   = new ProductsRepository(new DatabaseFactory(testDataContext));
            var productsServicesInst = new ProductsServices(productsRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var productsController = new ProductsController(productsServicesInst);

            // Act
            var response = productsController.Post(null);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(BadRequestResult));
        }
コード例 #8
0
        public void GetByCustomerId_WhenPassedUnknownCustomerId_ShouldReturnNotFoundResult()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Orders = _testOrders
            };
            var theRepository = new OrdersRepository(new DatabaseFactory(testDataContext));

            var ordersServicesInst = new OrdersServices(theRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var ordersController = new OrdersController(ordersServicesInst);

            // Act
            var response = ordersController.GetByCustomerId(0);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(NotFoundResult));
        }
コード例 #9
0
        public void Get_WhenCalledWithNoParameters_ShouldReturnAllProducts()
        {
            // Arrange
            var testDataContext = new DataFileData {
                Products = _testProducts
            };
            var repository = new ProductsRepository(new DatabaseFactory(testDataContext));

            var productsServicesInst = new ProductsServices(repository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var productsController = new ProductsController(productsServicesInst);

            // Act
            var response = productsController.Get();

            // Assert
            var items = (List <ProductItem>)((ObjectResult)response).Value;

            Assert.AreEqual(3, items.Count);
        }
コード例 #10
0
        public void Post_WhenPassedAValidProduct_ShouldReturnSame()
        {
            // arrange
            // I'm fudging a bit on the Id here for the sake of time.
            // in a real app, we'd let SQL Server / EF tell us the new Id value for an added item.
            const string product = "{ \"id\": 4, \"description\": \"Kiwi\", \"price\": 1.20 }";

            // still, in an attempt to get this to work as much like it would in the real world,
            // I'm going to serialize this into a real object that will then be passed to the
            // Post() method.
            var newProduct = JsonConvert.DeserializeObject <ProductItem>(product);

            var testDataContext = new DataFileData {
                Products = _testProducts
            };
            var productsRepository   = new ProductsRepository(new DatabaseFactory(testDataContext));
            var productsServicesInst = new ProductsServices(productsRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var productsController = new ProductsController(productsServicesInst);

            // Act
            var response = productsController.Post(newProduct);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(CreatedAtActionResult));

            var foundProduct = (ProductItem)((CreatedAtActionResult)response).Value;

            Assert.IsInstanceOfType(foundProduct, typeof(ProductItem));

            // And just for good measure...
            Assert.AreEqual(4, foundProduct.Id);
            Assert.AreEqual("Kiwi", foundProduct.Description);
        }
コード例 #11
0
        public void Post_WhenPassedAValidCustomer_ShouldReturnSame()
        {
            // arrange
            // I'm fudging a bit on the Id here for the sake of time.
            // in a real app, we'd let SQL Server / EF tell us the new Id value for an added item.
            const string customer = "{ \"id\": 4, \"name\": \"Scott\" }";

            // still, in an attempt to get this to work as much like it would in the real world,
            // I'm going to serialize this into a real object that will then be passed to the
            // Post() method.
            var newCustomer = JsonConvert.DeserializeObject <Customer>(customer);

            var testDataContext = new DataFileData {
                Customers = _testCustomers
            };
            var customersRepository   = new CustomersRepository(new DatabaseFactory(testDataContext));
            var customersServicesInst = new CustomersServices(customersRepository);

            //var mockStaticLoggerInstWrapper = new Mock<IStaticLoggerInstanceWrapper>();

            var customersController = new CustomersController(customersServicesInst);

            // Act
            var response = customersController.Post(newCustomer);

            // Assert
            Assert.IsNotNull(response);
            Assert.IsInstanceOfType(response, typeof(CreatedAtActionResult));

            var foundCustomer = (Customer)((CreatedAtActionResult)response).Value;

            Assert.IsInstanceOfType(foundCustomer, typeof(Customer));

            // And just for good measure...
            Assert.AreEqual(4, foundCustomer.Id);
            Assert.AreEqual("Scott", foundCustomer.Name);
        }
コード例 #12
0
 public CustomersRepository(IDatabaseFactory dbFactory) : base(dbFactory)
 {
     _dbContext = dbFactory.Get();
 }
コード例 #13
0
 public DatabaseFactory(DataFileData theData)
 {
     _theData = theData;
 }
コード例 #14
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="databaseFactory">An instance of any concrete class
 /// that implements the IDatabaseFactory interface.
 /// </param>
 protected RepositoryBase(IDatabaseFactory databaseFactory)
 {
     DatabaseFactory = databaseFactory;
     _dataContext    = DatabaseFactory.Get();
 }
コード例 #15
0
 public ProductsRepository(IDatabaseFactory dbFactory) : base(dbFactory)
 {
     _dbContext = dbFactory.Get();
 }