Example #1
0
        public void Test_AddSupplier_ReturnsTrueAndSetsDefault_WhenSupplierIsValidAndIsDefault()
        {
            // Arrange
            var supplier = new SupplierTO {
                Name = "Name", ContactName = "ContactName", Email = "Email", IsDefault = true
            };

            var mockSupplierRepo = new Mock <ISupplierRepository>();

            mockSupplierRepo.Setup(x => x.Insert(It.IsAny <SupplierTO>()));
            mockSupplierRepo.Setup(x => x.SetDefaultSupplier(It.IsAny <SupplierTO>()));

            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(x => x.SupplierRepository).Returns(mockSupplierRepo.Object);

            var assistant = new Assistant(mockUnitOfWork.Object);

            // Act
            var result = assistant.AddSupplier(supplier);

            // Assert
            Assert.IsTrue(result);
            mockSupplierRepo.Verify(x => x.Insert(It.IsAny <SupplierTO>()), Times.Once);
            mockSupplierRepo.Verify(x => x.SetDefaultSupplier(It.IsAny <SupplierTO>()), Times.Once);
        }
Example #2
0
        public void Test_AddSupplier_ThrowsException_WhenSupplierContactNameIsInvalid()
        {
            // Arrange
            var badSupplier1 = new SupplierTO {
                Name = "Name", ContactName = null, Email = "Email"
            };
            var badSupplier2 = new SupplierTO {
                Name = "Name", ContactName = "", Email = "Email"
            };
            var badSupplier3 = new SupplierTO {
                Name = "Name", ContactName = "  ", Email = "Email"
            };
            var badSupplier4 = new SupplierTO {
                Name = "Name", ContactName = "\t", Email = "Email"
            };
            var badSupplier5 = new SupplierTO {
                Name = "Name", ContactName = "\n  \t ", Email = "Email"
            };

            var mockSupplierRepo = new Mock <ISupplierRepository>();

            mockSupplierRepo.Setup(x => x.Insert(It.IsAny <SupplierTO>()));

            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(x => x.SupplierRepository).Returns(mockSupplierRepo.Object);

            var assistant = new Assistant(new Mock <IUnitOfWork>().Object);

            // Assert
            Assert.ThrowsException <InvalidSupplierException>(() => assistant.AddSupplier(badSupplier1));
            Assert.ThrowsException <InvalidSupplierException>(() => assistant.AddSupplier(badSupplier2));
            Assert.ThrowsException <InvalidSupplierException>(() => assistant.AddSupplier(badSupplier3));
            Assert.ThrowsException <InvalidSupplierException>(() => assistant.AddSupplier(badSupplier4));
            Assert.ThrowsException <InvalidSupplierException>(() => assistant.AddSupplier(badSupplier5));
            mockSupplierRepo.Verify(x => x.Insert(It.IsAny <SupplierTO>()), Times.Never);
        }
Example #3
0
        public void Test_AddSupplier_ThrowsException_WhenSupplierIsNull()
        {
            // Arrange
            SupplierTO badSupplier = null;

            var mockSupplierRepo = new Mock <ISupplierRepository>();

            mockSupplierRepo.Setup(x => x.Insert(It.IsAny <SupplierTO>()));

            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(x => x.SupplierRepository).Returns(mockSupplierRepo.Object);

            var assistant = new Assistant(new Mock <IUnitOfWork>().Object);

            // Assert
            Assert.ThrowsException <ArgumentNullException>(() => assistant.AddSupplier(badSupplier));
            mockSupplierRepo.Verify(x => x.Insert(It.IsAny <SupplierTO>()), Times.Never);
        }
Example #4
0
        public void Test_AddSupplier_ThrowsException_WhenSupplierIdIsNotZero()
        {
            // Arrange
            var badSupplier = new SupplierTO {
                Id = 10
            };

            var mockSupplierRepo = new Mock <ISupplierRepository>();

            mockSupplierRepo.Setup(x => x.Insert(It.IsAny <SupplierTO>()));

            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(x => x.SupplierRepository).Returns(mockSupplierRepo.Object);

            var assistant = new Assistant(new Mock <IUnitOfWork>().Object);

            // Assert
            Assert.ThrowsException <InvalidSupplierException>(() => assistant.AddSupplier(badSupplier));
            mockSupplierRepo.Verify(x => x.Insert(It.IsAny <SupplierTO>()), Times.Never);
        }