public void Should_ReturnSpecifiedPersonWithRelatedMailSortedByDate_WhenRequested() { // arrange var person = Builder<Person>. CreateNew(). With(x => x.Id = 7777). With(x => x.RelatedMails = Builder<MailMessage>. CreateListOfSize(10). All(). With(d => d.Date = new RandomGenerator().DateTime()). Build()). Build(); var repository = Substitute.For<IRepository>(); repository.Get<Person>(7777).Returns(person); var clientController = new ClientsController(repository); // act var viewResult = clientController.MailingHistory(7777).Model as Person; // assert for (int i = 1; i < viewResult.RelatedMails.Count; i++) Assert.That(viewResult.RelatedMails[i].Date >= viewResult.RelatedMails[i - 1].Date); }
public void ShouldNot_RaiseAnException_WhenClientsListIsEmpty() { // arrange var repository = Substitute.For<IRepository>(); repository.Query<Person>().Returns(new List<Person>().AsQueryable()); var clientController = new ClientsController(repository); // act & assert Assert.DoesNotThrow(() => clientController.Index()); }
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_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); }
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 Should_ReturnMailingHistoryOfSpecifiedPerson_WhenRequested() { // arrange var person = Builder<Person>.CreateNew() .With(x => x.Id = 7777).Build(); var mails = Builder<MailMessage>.CreateListOfSize(25) .All().With(x => x.Date = GetRandom.DateTime()) .With(x => x.Sender = Builder<Person>.CreateNew().Build()) .With(x => x.Receivers = Builder<Person>.CreateListOfSize(3).Build()) .TheFirst(7).With(x => x.Sender = person) .TheLast(7).With(x => x.Receivers = new List<Person> {person}) .Build(); var repository = Substitute.For<IRepository>(); repository.Query<MailMessage>().ReturnsForAnyArgs(mails.AsQueryable()); var clientController = new ClientsController(repository); // act var viewResult = (IList<MailMessage>)clientController.MailingHistory(7777).Model; // assert viewResult.Count().Should().Be(14); for (int i = 1; i < viewResult.Count; i++) viewResult[i].Date.Should().BeOnOrAfter(viewResult[i - 1].Date); }