상속: Controller
예제 #1
0
        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);
        }
예제 #2
0
        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);
        }