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); }
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); }
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); }
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); }