예제 #1
0
        /// <summary>
        /// Pass production implementation to PartInvoiceController constructor.
        /// </summary>
        public PinnacleClient()
        {
            DBConnection dBConnection = new DBConnection();
            AvailabilityServiceClient availabilityServiceClient = new AvailabilityServiceClient();

            __Controller = new PartInvoiceController(dBConnection, availabilityServiceClient);
        }
        public void PartInvoiceControllerTests_CustomerNotFound()
        {
            var ioc = new Mock <IIoC>();

            var      customerRepository = new Mock <ICustomerRepositoryDB>();
            Customer customer           = null;

            customerRepository.Setup(r => r.GetByName(It.IsAny <string>())).Returns(customer);
            ioc.Setup(c => c.Resolve <ICustomerRepositoryDB>()).Returns(customerRepository.Object);

            var partInvoiceRepository = new Mock <IPartInvoiceRepositoryDB>();

            ioc.Setup(c => c.Resolve <IPartInvoiceRepositoryDB>()).Returns(partInvoiceRepository.Object);

            var partAvailabilityService = new Mock <Services.PartAvailabilityService.IPartAvailabilityService>();

            ioc.Setup(c => c.Resolve <Services.PartAvailabilityService.IPartAvailabilityService>()).Returns(partAvailabilityService.Object);

            var partInvoiceController = new PartInvoiceController(ioc.Object);
            var stockCode             = "PW";
            var quantity     = 1;
            var customerName = "PineWood";

            var result = partInvoiceController.CreatePartInvoice(stockCode, quantity, customerName);

            Assert.IsTrue(result.Success == false);
        }
        public void PartInvoiceControllerTests_CreatePartInvoice_Success()
        {
            var ioc = new Mock <IIoC>();

            var      customerRepository = new Mock <ICustomerRepositoryDB>();
            Customer customer           = new Customer
            {
                ID      = 1,
                Name    = "PineWood",
                Address = "UK"
            };

            customerRepository.Setup(r => r.GetByName(It.IsAny <string>())).Returns(customer);
            ioc.Setup(c => c.Resolve <ICustomerRepositoryDB>()).Returns(customerRepository.Object);

            var partInvoiceRepository = new Mock <IPartInvoiceRepositoryDB>();

            partInvoiceRepository.Setup(r => r.Add(It.IsAny <PartInvoice>()));
            ioc.Setup(c => c.Resolve <IPartInvoiceRepositoryDB>()).Returns(partInvoiceRepository.Object);

            var partAvailabilityService = new Mock <Services.PartAvailabilityService.IPartAvailabilityService>();
            var availability            = 1;

            partAvailabilityService.Setup(s => s.GetAvailability(It.IsAny <string>())).Returns(availability);
            ioc.Setup(c => c.Resolve <Services.PartAvailabilityService.IPartAvailabilityService>()).Returns(partAvailabilityService.Object);

            var partInvoiceController = new PartInvoiceController(ioc.Object);
            var stockCode             = "PW";
            var quantity     = 1;
            var customerName = "PineWood";

            var result = partInvoiceController.CreatePartInvoice(stockCode, quantity, customerName);

            Assert.IsTrue(result.Success == true);
        }
예제 #4
0
        public PinnacleClient()
        {
            ICustomerRepositoryDB    _CustomerRepository      = new CustomerRepositoryDB();
            IPartInvoiceRepositoryDB _PartInvoiceRepository   = new PartInvoiceRepositoryDB();
            IPartAvailabilityService _PartAvailabilityService = new PartAvailabilityServiceClient();

            __Controller = new PartInvoiceController(_CustomerRepository, _PartInvoiceRepository, _PartAvailabilityService);
        }
        public void TestInitialize()
        {
            _CustomerRepository      = new Mock <ICustomerRepositoryDB>();
            _PartAvailabilityService = new Mock <IPartAvailabilityService>();
            _PartInvoiceRepository   = new Mock <IPartInvoiceRepositoryDB>();

            controller = new PartInvoiceController(
                _CustomerRepository.Object,
                _PartInvoiceRepository.Object,
                _PartAvailabilityService.Object);
        }
예제 #6
0
        public void CreatePartInvoiceShouldFail()
        {
            //Arrange:
            string stockCode    = null;
            int    quantity     = 10;
            string customerName = "Kalpesh";
            CreatePartInvoiceResult expected   = new CreatePartInvoiceResult(false);
            PartInvoiceController   controller = new PartInvoiceController(new CustomerRepositoryDBMock(), new PartInvoiceRepositoryDBMock(), new PartAvailabilityServiceProviderMock());

            //Act
            CreatePartInvoiceResult actual = controller.CreatePartInvoice(stockCode, quantity, customerName);

            //Assert
            Assert.AreEqual(expected.Success, actual.Success);
        }
        public void CreatePartInvoice_WithSatisfactoryArgument_ShouldReturnCreatePartInvoiceResultWithSuccessTrue()
        {
            // Arrange
            PartInvoiceController PartInvoiceControllerInstance = new PartInvoiceController(FakeConnectionInstance, FakeAvailabilityServiceClientInstance);
            string stockCode    = "HON";
            int    quantity     = 10;
            string customerName = "Abernathy";
            CreatePartInvoiceResult expected = CreatePartInvoiceResultSuccessful;

            // Act
            var actual = PartInvoiceControllerInstance.CreatePartInvoice(stockCode, quantity, customerName);

            // Assert
            Assert.IsInstanceOfType(actual, typeof(CreatePartInvoiceResult));
            Assert.AreEqual(actual.GetType(), expected.GetType());
            Assert.AreEqual(actual.Success, expected.Success);
        }
        public void CreatePartInvoice_WithAvailabilityLessThanOrEqualZero_ShouldReturnCreatePartInvoiceResultWithSuccessFalse()
        {
            // Arrange
            PartInvoiceController PartInvoiceControllerInstance = new PartInvoiceController(FakeConnectionInstance, FakeAvailabilityServiceClientInstance);
            string stockCode    = "ASA";
            int    quantity     = 0;
            string customerName = "Agos";
            CreatePartInvoiceResult expected = CreatePartInvoiceResultUnsuccessful;

            // Act
            var actual = PartInvoiceControllerInstance.CreatePartInvoice(stockCode, quantity, customerName);

            // Assert
            Assert.IsInstanceOfType(actual, typeof(CreatePartInvoiceResult));
            Assert.AreEqual(actual.GetType(), expected.GetType());
            Assert.AreEqual(actual.Success, expected.Success);
        }
        public void PartInvoiceControllerTests_QuantityNotMoreThan0()
        {
            var ioc = new Mock <IIoC>();

            var customerRepository = new Mock <ICustomerRepositoryDB>();

            ioc.Setup(c => c.Resolve <ICustomerRepositoryDB>()).Returns(customerRepository.Object);

            var partInvoiceRepository = new Mock <IPartInvoiceRepositoryDB>();

            ioc.Setup(c => c.Resolve <IPartInvoiceRepositoryDB>()).Returns(partInvoiceRepository.Object);

            var partAvailabilityService = new Mock <Services.PartAvailabilityService.IPartAvailabilityService>();

            ioc.Setup(c => c.Resolve <Services.PartAvailabilityService.IPartAvailabilityService>()).Returns(partAvailabilityService.Object);

            var partInvoiceController = new PartInvoiceController(ioc.Object);
            var stockCode             = "PW";
            var quantity     = 0;
            var customerName = "PineWood";
            var result       = partInvoiceController.CreatePartInvoice(stockCode, quantity, customerName);

            Assert.IsTrue(result.Success == false);
        }
 public PinnacleClient()
 {
     __Controller = new PartInvoiceController();
 }