public void import_should_return_errors_for_existing_emails() { var userid = Guid.NewGuid(); var username = "******"; var contact1 = new Contact { Email = "*****@*****.**", User = new User { UserId = userid } }; var contact2 = new Contact { Email = "*****@*****.**", User = new User { UserId = userid } }; var contact3 = new Contact { Email = "*****@*****.**", User = new User { UserId = userid } }; var contacts = new List<Contact> { contact1, contact2, contact3 }; var repository = new InMemoryContactRepository(); repository.Add(contact2); var mockRunner = new Mock<IValidationRunner>(); mockRunner.Expect(v => v.Run(contact1)) .Returns(new List<ValidationError>()); mockRunner.Expect(v => v.Run(contact2)) .Returns(new List<ValidationError>()); mockRunner.Expect(v => v.Run(contact3)) .Returns(new List<ValidationError>()); var service = new InMemoryContactService( repository, mockRunner.Object); var exception = (ValidationException) Assert.Throws(typeof(ValidationException), () => service.Import( new User { UserId = userid, Username = username }, contacts)); Assert.AreEqual(1, exception.ValidationErrors.Count); Assert.AreEqual(string.Format("{0} already exists", contact2.Email), exception.ValidationErrors[0].ErrorMessage); Assert.AreEqual(1, repository.Get() .Count(c => c.Email == contact2.Email)); mockRunner.VerifyAll(); }
public void import_should_set_user_object_on_each_contact() { var userid = Guid.NewGuid(); var username = "******"; var contact1 = new Contact { Email = "*****@*****.**" }; var contact2 = new Contact { Email = "*****@*****.**" }; var contact3 = new Contact { Email = "*****@*****.**" }; var contacts = new List<Contact> { contact1, contact2, contact3 }; var repo = new InMemoryContactRepository(); var mockRunner = new Mock<IValidationRunner>(); mockRunner.Expect(v => v.Run(contact1)) .Returns(new List<ValidationError>()); mockRunner.Expect(v => v.Run(contact2)) .Returns(new List<ValidationError>()); mockRunner.Expect(v => v.Run(contact3)) .Returns(new List<ValidationError>()); var service = new InMemoryContactService( repo, mockRunner.Object); service.Import(new User { UserId = userid, Username = username }, contacts); Assert.AreEqual(3,repo.Get().Count()); Assert.AreEqual(3, repo.Get().Count( c => c.User.UserId == userid && c.User.Username == username)); mockRunner.VerifyAll(); }