public void Should_CallSaveMethodOfRepository_WhenCallingConvertForMailWithUnknownClientAndEmployee() { //arrange var mailMessage = Builder<MailMessage>.CreateNew() .With(x => x.Sender = new MailAddress("*****@*****.**", "Client 1")) .With(x => x.Receivers = new List<MailAddress> { new MailAddress("*****@*****.**", "Employee 1") }) .Build(); var client = new Person { CreationDate = mailMessage.Date, FirstName = "Client", LastName = "1", Email = "*****@*****.**" }; var employee = new Person { CreationDate = mailMessage.Date, FirstName = "Employee", LastName = "1", Email = "*****@*****.**" }; repository.Query<Person>().Returns(new List<Person>().AsQueryable()); //act mailMessagePersister.Convert(mailMessage); //assert repository.Received().Save(client); repository.Received().Save(employee); }
public RedirectToRouteResult Edit(int id, Person employee) { if(ModelState.IsValid) { repository.Save(employee); } return RedirectToAction("Week", "Inquiries"); }
public ActionResult Edit(int id, Person client) { if (ModelState.IsValid) { repository.Save(client); return RedirectToAction("Details", new {id}); } return View(client); }
public ViewResult Edit(int id, Person employee) { if(ModelState.IsValid) { repository.Save(employee); return View("Details", employee); } return View(employee); }
public void ShouldNot_ReturnNullAnd_ShouldCallMethodGetOfIRepository_WhenRequestedEditWith1Parameter() { //arrange var employee = new Person { Id = 3, Role = PersonRole.Employee }; var repository = Substitute.For<IRepository>(); repository.Get<Person>(3).Returns(employee); var employeeController = new EmployeesController(repository, appContext); //act var viewModel = employeeController.Edit(3).Model as Person; //assert viewModel.Should().NotBeNull(); repository.Received().Get<Person>(3); }
//TODO refactor this /// <summary> /// Renders information received from authentication service. /// </summary> public ActionResult GoogleAuth(string code, string error) { UserInfo userInfo; try { userInfo = googleClient.GetUserInfo(googleClient.GetAccessToken(code, error)); } catch { return RedirectToAction("LogOn"); } var user = repository.Query<User>(x => x.RelatedPerson, x => x.Teams) .SingleOrDefault(x => x.GoogleId == userInfo.Id); if (null == user) { user = new User { GoogleId = userInfo.Id, RelatedPerson = repository.Query<Person>().SingleOrDefault(x => x.Email == userInfo.Email) }; if (null == user.RelatedPerson) { var person = new Person { Email = userInfo.Email, FirstName = userInfo.FirstName, LastName = userInfo.LastName, PhotoUri = userInfo.PhotoUri, Role = PersonRole.Employee, CreationDate = DateTime.Now }; user.RelatedPerson = person; repository.Save(person); } repository.Save(user); } appContext.User = user; return RedirectToRoute("Default"); }
public void ShouldNot_ReturnNullAnd_ShouldCallMethodGetOfIRepository_WhenRequestedEditWith1Parameter() { // arrange var returnedClient = new Person { Id = 3, Role = PersonRole.Client }; var repository = Substitute.For<IRepository>(); repository.Get<Person>(3).Returns(returnedClient); var clientController = new ClientsController(repository); // act var viewModel = clientController.Edit(3).Model as Person; // assert viewModel.Should().NotBeNull(); repository.Received().Get<Person>(3); }
public void ShouldNot_ReturnNullAndShouldCallMethodGetOfIRepository_WhenRequestedDetails() { // arrange var returnedClient = new Person { Id = 1, Role=PersonRole.Client }; var repository = Substitute.For<IRepository>(); repository.Get<Person>(1).Returns(returnedClient); repository.Query<Inquiry>().Returns(new[] {new Inquiry {Client = returnedClient}}.AsQueryable()); var clientController = new ClientsController(repository); // act var viewModel = clientController.Details(1).Model as ClientDetailsViewModel; // assert viewModel.Should().NotBeNull(); repository.Received().Get<Person>(1); }
public void Should_CallSaveMethodOfRepositoryObjectForClientAndEmployee_WhenCallingConvertWithUnknownYetMailAddressesOfClientAndEmployee() { //arrange var receiver = new MailAddress("*****@*****.**", "Employee 1"); var mailMessage = new DomainModel.Input.MailMessage { Body = "Body", Date = new DateTime(2012, 1, 1), Subject = "Subject", Sender = new MailAddress("*****@*****.**", "Client 1"), Receivers = new List<MailAddress> { receiver } }; var addingClient = new Person { CreationDate = mailMessage.Date, FirstName = "Client", LastName = "1", Email = "*****@*****.**" }; var addingEmployee = new Person { CreationDate = mailMessage.Date, FirstName = "Employee", LastName = "1", Email = "*****@*****.**" }; //act var result=converter.Convert(mailMessage); //assert mock.Verify(x =>x.Save(addingClient), Times.Once()); mock.Verify(x=>x.Save(addingEmployee), Times.Once()); }
public bool Equals(Person other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return other.Id == Id && Equals(other.FirstName, FirstName) && Equals(other.LastName, LastName) && other.CreationDate.Equals(CreationDate) && Equals(other.Email, Email) && other.Role == Role; }
public void Should_GoToDetailsViewAndCallSaveMethodOfIRepository_WhenRequestedEditWith2Parameters() { //arrange var employee = new Person { Id = 1, Role = PersonRole.Employee }; var repository = Substitute.For<IRepository>(); repository.Query<Person>().ReturnsForAnyArgs(new List<Person>{employee}.AsQueryable()); var employeeController = new EmployeesController(repository, appContext); //act employeeController.Edit(1, employee); //act //viewResult.ViewName.Should().Be("Details"); repository.Received().Save(employee); }
public void Should_ReturnMailMessageWithRightData_WhenCallingConvertMethod() { //arrange var receiver1 = new MailAddress("*****@*****.**", "Employee Petrov"); var receiver2 = new MailAddress("*****@*****.**", "Employee Kozlov"); var mailMessage = new DomainModel.Input.MailMessage { Body = "This is Body", Date = new DateTime(2012, 1, 1), Subject = "This is Subject", Sender = new MailAddress("*****@*****.**", "Client Ivanov"), Receivers=new List<MailAddress> {receiver1,receiver2} }; var expectedPerson = new Person { Id = 1, Role = (int)PersonRole.Client, CreationDate = new DateTime(2000, 1, 1), FirstName = "Client", LastName = "Ivanov", Email = "*****@*****.**", }; var expectedReceiver1 = new Person { Id = 2, Role = (int)PersonRole.Employee, CreationDate = new DateTime(2000, 1, 1), FirstName = "Employee", LastName = "Petrov", Email = "*****@*****.**" }; var expectedReceiver2 = new Person { Id = 3, Role = (int) PersonRole.Employee, CreationDate = new DateTime(2000, 1, 1), FirstName = "Employee", LastName = "Kozlov", Email = "*****@*****.**" }; mock.Setup(it => it.Query<Person>()).Returns(new List<Person> { expectedPerson, expectedReceiver1, expectedReceiver2 }.AsQueryable()); //act var result=converter.Convert(mailMessage); //assert Assert.AreEqual("This is Body", result.Body); Assert.AreEqual("This is Subject", result.Subject); Assert.AreEqual(new DateTime(2012, 1, 1), result.Date); Assert.AreEqual(expectedPerson, result.Sender); CollectionAssert.Contains(result.Receivers, expectedReceiver1); CollectionAssert.Contains(result.Receivers, expectedReceiver2); Assert.AreEqual(2,result.Receivers.Count); }
/// <summary> /// Create new person in repository /// </summary> /// <param name="mailOfPerson">Mail address and name of person</param> /// <param name="dateOfIncomingMail">Date when mail is arrived</param> /// <returns>Person that was added to repository</returns> private Person AddNewPersonToRepository(MailAddress mailOfPerson, DateTime dateOfIncomingMail) { //Split name of client into first name and last name char[] separator = { ' ' }; var personNameList = mailOfPerson.DisplayName.Split(separator).ToList(); //add person to Repository var person = new Person { CreationDate = dateOfIncomingMail, Email = mailOfPerson.Address, FirstName = personNameList.Count >= 1 ? personNameList[0] : "", LastName = personNameList.Count >= 2 ? personNameList[1] : "", Role = PersonRole.Client }; repository.Save(person); return person; }
public void Should_SaveMailMessageToRepository_WhenEmployeeSendMessageToClientWithCarbonCopyToOurSystem() { //arrange aeEmailClient.GetUnreadMessages().Returns(new List<MailMessage> { new MailMessage { Body = "a", Date = Clock.Now, Subject = "s", Sender = new MailAddress("*****@*****.**","employee"), Receivers = new List<MailAddress>{new MailAddress("*****@*****.**","client")}, } }); var employee = new Person { Email = "*****@*****.**", FirstName = "employee", Role = PersonRole.Employee }; repository.Query<Person>().ReturnsForAnyArgs(new List<Person> { employee, new Person { Email="*****@*****.**", FirstName = "client", Role = PersonRole.Client } }.AsQueryable()); repository.Query<User>().ReturnsForAnyArgs(new List<User>{new User { RelatedPerson = employee, CurrentTeam = new Team() } }.AsQueryable()); //act mailMessagePersister.ProcessMessage(aeEmailClient, EventArgs.Empty); //assert repository.Received().Save(Arg.Is<Entities.MailMessage>(x => x.Sender.Email == "*****@*****.**" && x.Receivers.Any(receiver => receiver.Email == "*****@*****.**") && x.Receivers.Count == 1)); }
public void Should_GoToDetailsViewAndCallSaveMethodOfIRepository_WhenRequestedEditWith2Parameters() { // arrange var savedClient = new Person { Id = 1, Role = PersonRole.Client }; var repository = Substitute.For<IRepository>(); var clientController = new ClientsController(repository); // act var viewResult = clientController.Edit(1, savedClient); // assert //viewResult.ViewName.Should().Be("Details"); repository.Received().Save(savedClient); }