Exemple #1
0
        public void ReturnCorrectMessage_WhenMethodReturns()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var mockSupplierService = new Mock <ISupplierService>();

            mockSupplierService.Setup(s => s.SupplierExistsByName(It.IsAny <string>())).Returns(false);
            var fakeJsonService = new Mock <IJsonService>();
            var fakeSupplier1   = new SuppliersImportModel
            {
                Name = "Pesho"
            };
            var fakeSupplier2 = new SuppliersImportModel();

            fakeJsonService.Setup(s => s.DeserializeSuppliers(It.IsAny <string>())).Returns(new[] { fakeSupplier1, fakeSupplier2 });
            var fakeFileReader = new Mock <IFileReader>();
            var fakeValidator  = new Mock <IValidator>();

            fakeValidator.SetupSequence(s => s.IsValid(It.IsAny <object>())).Returns(true).Returns(false);
            var importService = new MockImportService(fakeProductService.Object, fakeCourierService.Object,
                                                      mockSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);
            string expectedMessage =
                $"Supplier {fakeSupplier1.Name} added successfully!\r\n" +
                "Import rejected. Input is with invalid format.\r\n";
            //Act
            string actualMessage = importService.ExposedImportSuppliersFunction();

            //Assert
            Assert.AreEqual(expectedMessage, actualMessage);
        }
Exemple #2
0
        public void AddsTheSupplierToListOfValidSuppliers_WhenModelIsValidAndSupplierDoesNotExist()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var mockSupplierService = new Mock <ISupplierService>();

            mockSupplierService.Setup(s => s.SupplierExistsByName(It.IsAny <string>())).Returns(false);
            var fakeJsonService = new Mock <IJsonService>();
            var fakeSupplier    = new SuppliersImportModel
            {
                Name = "Pesho",
            };

            fakeJsonService.Setup(s => s.DeserializeSuppliers(It.IsAny <string>())).Returns(new[] { fakeSupplier });
            var fakeFileReader = new Mock <IFileReader>();
            var fakeValidator  = new Mock <IValidator>();

            fakeValidator.Setup(s => s.IsValid(It.IsAny <object>())).Returns(true);
            var importService = new MockImportService(fakeProductService.Object, fakeCourierService.Object,
                                                      mockSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);

            //Act
            importService.ExposedImportSuppliersFunction();

            //Assert
            Assert.IsTrue(importService.ExposedValidSuppliers.Any(a => a.Name == fakeSupplier.Name));
        }
Exemple #3
0
        public void InvokeAddSupplierRange_WhenAllSuppliersAreValidated()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var mockSupplierService = new Mock <ISupplierService>();

            mockSupplierService.Setup(s => s.SupplierExistsByName(It.IsAny <string>())).Returns(false);
            var fakeJsonService = new Mock <IJsonService>();
            var fakeSupplier    = new SuppliersImportModel();

            fakeJsonService.Setup(s => s.DeserializeSuppliers(It.IsAny <string>())).Returns(new[] { fakeSupplier });
            var fakeFileReader = new Mock <IFileReader>();
            var fakeValidator  = new Mock <IValidator>();

            fakeValidator.Setup(s => s.IsValid(It.IsAny <object>())).Returns(true);
            var importService = new MockImportService(fakeProductService.Object, fakeCourierService.Object,
                                                      mockSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);

            //Act
            importService.ExposedImportSuppliersFunction();

            //Assert
            mockSupplierService.Verify(v => v.AddSupplierRange(It.IsAny <IList <ISuppliersImportModel> >()), Times.Once);
        }
Exemple #4
0
        public void ReturnsCorrectMessage_WhenModelIsValidAndSupplierExists()
        {
            //Arrange
            var fakekProductService = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var mockSupplierService = new Mock <ISupplierService>();

            mockSupplierService.Setup(s => s.SupplierExistsByName(It.IsAny <string>())).Returns(true);
            var fakeJsonService = new Mock <IJsonService>();
            var fakeSupplier    = new SuppliersImportModel
            {
                Name = "Pesho"
            };

            fakeJsonService.Setup(s => s.DeserializeSuppliers(It.IsAny <string>())).Returns(new[] { fakeSupplier });
            var fakeFileReader = new Mock <IFileReader>();
            var fakeValidator  = new Mock <IValidator>();

            fakeValidator.Setup(s => s.IsValid(It.IsAny <object>())).Returns(true);
            var importService = new MockImportService(fakekProductService.Object, fakeCourierService.Object,
                                                      mockSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);
            string expectedMessage = $"Supplier {fakeSupplier.Name} already exists!\r\n";
            //Act
            string actualMessage = importService.ExposedImportSuppliersFunction();

            //Assert
            Assert.AreEqual(expectedMessage, actualMessage);
        }
        public void ReturnsValidMessage_WhenCourierIsAdded()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var mockCourierService  = new Mock <ICourierService>();
            var fakeSupplierService = new Mock <ISupplierService>();

            mockCourierService.Setup(s => s.CourierExistsByName(It.IsAny <string>(), It.IsAny <string>())).Returns(false);
            var fakeJsonService = new Mock <IJsonService>();
            var fakeCourier     = new CourierImportModel()
            {
                FirstName = "Pesho",
                LastName  = "Goshov"
            };

            fakeJsonService.Setup(s => s.DeserializeCouriers(It.IsAny <string>())).Returns(new[] { fakeCourier });
            var fakeFileReader = new Mock <IFileReader>();
            var fakeValidator  = new Mock <IValidator>();

            fakeValidator.Setup(s => s.IsValid(It.IsAny <object>())).Returns(true);
            var importService = new MockImportService(fakeProductService.Object, mockCourierService.Object,
                                                      fakeSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);
            string expectedMessage = $"Courier {fakeCourier.FirstName} {fakeCourier.LastName} added successfully!\r\n";
            //Act
            string actualMessage = importService.ExposedImportCouriersFunction();

            //Assert

            Assert.AreEqual(expectedMessage, actualMessage);
        }
Exemple #6
0
        public void ReturnsValidMessage_WhenProductIsAdded()
        {
            //Arrange
            var mockProductService = new Mock <IProductService>();

            mockProductService.Setup(s => s.ProductExistsByName(It.IsAny <string>())).Returns(false);
            var fakeCourierService  = new Mock <ICourierService>();
            var fakeSupplierService = new Mock <ISupplierService>();
            var fakeJsonService     = new Mock <IJsonService>();
            var fakeProduct         = new ProductImportModel
            {
                Name     = "test",
                Quantity = 5
            };

            fakeJsonService.Setup(s => s.DeserializeProducts(It.IsAny <string>())).Returns(new[] { fakeProduct });
            var fakeFileReader = new Mock <IFileReader>();
            var fakeValidator  = new Mock <IValidator>();

            fakeValidator.Setup(s => s.IsValid(It.IsAny <object>())).Returns(true);
            var importService = new MockImportService(mockProductService.Object, fakeCourierService.Object,
                                                      fakeSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);
            string expectedMessage = $"{fakeProduct.Quantity} items of product {fakeProduct.Name} added successfully!\r\n";
            //Act
            string actualMessage = importService.ExposedImportProductsFunction();

            //Assert

            Assert.AreEqual(expectedMessage, actualMessage);
        }
Exemple #7
0
        public void InvokeJsonread_ToDeserializeImportString()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var fakeSupplierService = new Mock <ISupplierService>();
            var mockJsonService     = new Mock <IJsonService>();
            var fakeFileReader      = new Mock <IFileReader>();
            var fakeValidator       = new Mock <IValidator>();
            var importService       = new MockImportService(fakeProductService.Object, fakeCourierService.Object,
                                                            fakeSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, mockJsonService.Object);

            //Act
            importService.ExposedImportSuppliersFunction();

            //Assert
            mockJsonService.Verify(v => v.DeserializeSuppliers(It.IsAny <string>()), Times.Exactly(1));
        }
        public void InvokeImportProductsImportCouriersAndImportSuppliers()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var fakeSupplierService = new Mock <ISupplierService>();
            var fakeFileReader      = new Mock <IFileReader>();
            var fakeValidator       = new Mock <IValidator>();
            var fakeJsonService     = new Mock <IJsonService>();
            var mockImportService   = new MockImportService(fakeProductService.Object, fakeCourierService.Object,
                                                            fakeSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);
            var expectedResult = "Suppliers method invoked!" + Environment.NewLine + "Courier method invoked!" + Environment.NewLine + "Products Method Invoked!";
            //Act
            var actualResult = mockImportService.Import();

            //Assert
            Assert.AreEqual(expectedResult, actualResult);
        }
Exemple #9
0
        public void InvokeValidator_ToValidateObject()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var fakeSupplierService = new Mock <ISupplierService>();
            var fakeJsonService     = new Mock <IJsonService>();

            fakeJsonService.Setup(s => s.DeserializeSuppliers(It.IsAny <string>())).Returns(new[] { new SuppliersImportModel() });
            var fakeFileReader = new Mock <IFileReader>();
            var mockValidator  = new Mock <IValidator>();
            var importService  = new MockImportService(fakeProductService.Object, fakeCourierService.Object,
                                                       fakeSupplierService.Object, fakeFileReader.Object, mockValidator.Object, fakeJsonService.Object);

            //Act
            importService.ExposedImportSuppliersFunction();

            //Assert
            mockValidator.Verify(v => v.IsValid(It.IsAny <object>()), Times.Exactly(1));
        }
Exemple #10
0
        public void ReturnInvalidInputMessage_WhenModelIsInvalid()
        {
            //Arrange
            var fakeProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var fakeSupplierService = new Mock <ISupplierService>();
            var fakeJsonService     = new Mock <IJsonService>();

            fakeJsonService.Setup(s => s.DeserializeSuppliers(It.IsAny <string>())).Returns(new[] { new SuppliersImportModel() });
            var fakeFileReader = new Mock <IFileReader>();
            var mockValidator  = new Mock <IValidator>();

            mockValidator.Setup(s => s.IsValid(It.IsAny <object>())).Returns(false);
            var importService = new MockImportService(fakeProductService.Object, fakeCourierService.Object,
                                                      fakeSupplierService.Object, fakeFileReader.Object, mockValidator.Object, fakeJsonService.Object);
            string expectedMessage = "Import rejected. Input is with invalid format.\r\n";
            //Act
            string actualMessage = importService.ExposedImportSuppliersFunction();

            //Assert
            Assert.AreEqual(expectedMessage, actualMessage);
        }
Exemple #11
0
        public void InvokeProductExistsByName_WhenModelIsValid()
        {
            //Arrange
            var mockProductService  = new Mock <IProductService>();
            var fakeCourierService  = new Mock <ICourierService>();
            var fakeSupplierService = new Mock <ISupplierService>();
            var fakeJsonService     = new Mock <IJsonService>();

            fakeJsonService.Setup(s => s.DeserializeProducts(It.IsAny <string>())).Returns(new[] { new ProductImportModel() });
            var fakeFileReader = new Mock <IFileReader>();
            var fakeValidator  = new Mock <IValidator>();

            fakeValidator.Setup(s => s.IsValid(It.IsAny <object>())).Returns(true);
            var importService = new MockImportService(mockProductService.Object, fakeCourierService.Object,
                                                      fakeSupplierService.Object, fakeFileReader.Object, fakeValidator.Object, fakeJsonService.Object);

            //Act
            importService.ExposedImportProductsFunction();

            //Assert
            mockProductService.Verify(v => v.ProductExistsByName(It.IsAny <string>()), Times.Exactly(1));
        }