Exemple #1
0
        public async Task AddStory_ShouldAddNewStoryCorrectly()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();


            var storiesRepoBuilder = new StoriesRepositoryBuilder();
            var storiesRepo        = storiesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new StoriesService(storiesRepo, destRepo, null, null, Mapper);

            var createStoryViewModel = new CreateStoryViewModel
            {
                Content       = "Niki otiva na ski",
                Title         = "Niki",
                DestinationId = "2",
            };

            var user = new GoUser {
                Id = "7"
            };

            await sut.AddStory(createStoryViewModel, "2", user);

            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.AddAsync(It.IsAny <Story>()), Times.Once);
            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once);
        }
Exemple #2
0
        public async Task AddStory_ShouldThrow_IfDestinationNotExist()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();


            var storiesRepoBuilder = new StoriesRepositoryBuilder();
            var storiesRepo        = storiesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new StoriesService(storiesRepo, destRepo, null, null, Mapper);

            var createStoryViewModel = new CreateStoryViewModel
            {
                Content       = "Niki otiva na ski",
                Title         = "Niki",
                DestinationId = "11",
            };

            var user = new GoUser {
                Id = "7"
            };

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.AddStory(createStoryViewModel, "11", user));

            Assert.Equal("Destination not exist!", ex.Message);

            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.AddAsync(It.IsAny <Story>()), Times.Never);
            storiesRepoBuilder.StoriesRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never);
        }
        public async Task EditDestination_ShouldEditDestinationCorrectly()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();

            var sut = new DestinationService(destRepo, null, null, null, null, null, null, Mapper);

            var editDestinationViewModel = new EditDestinationViewModel
            {
                Id            = "2",
                Image         = SetupFileMock().Object,
                Description   = "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn",
                Level         = (LevelOfDifficulty)2,
                Naame         = "Niki",
                StartDate     = DateTime.Now.AddDays(3),
                EndDateToJoin = DateTime.Now.AddDays(1),
                EndDate       = DateTime.Now.AddDays(5)
            };


            await sut.EditDestination(editDestinationViewModel);

            var newdest = destRepo.All().FirstOrDefault(x => x.Id == "2");

            var actual = Mapper.Map <EditDestinationViewModel>(newdest);

            Assert.Equal(editDestinationViewModel, actual, new EditDestinationViewModelComparer());
        }
        private DestinationService SetupGetDetailsSut()
        {
            var usersRepoBuilder = new GoUserRepositoryBuilder();
            var usersRepo        = usersRepoBuilder
                                   .WithAll()
                                   .Build();

            var commentsRepoBuilder = new CommentsRepositoryBuilder();
            var commentsRepo        = commentsRepoBuilder
                                      .WithAll()
                                      .Build();

            var storiesRepoBuilder = new StoriesRepositoryBuilder();
            var storiesRepo        = storiesRepoBuilder
                                     .WithAll()
                                     .Build();

            var peopleStoriesRepoBuilder = new PeopleStoriesRepositoryBuilder();
            var peopleStoriesRepo        = peopleStoriesRepoBuilder
                                           .WithAll()
                                           .Build();

            var destUsersRepoBuilder = new DestinationsUsersRepositoryBuilder();
            var destUserRepo         = destUsersRepoBuilder
                                       .WithAll()
                                       .Build();

            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();

            return(new DestinationService(destRepo, destUserRepo, peopleStoriesRepo, commentsRepo, storiesRepo, usersRepo, null, Mapper));
        }
        public void GetAllDestinations_ShouldReturn_All_DestViewModels()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();

            var sut = new DestinationService(destRepo, null, null, null, null, null, null, this.Mapper);

            var actual   = sut.GetAllDestinations();
            var expected = new List <DestViewModel>
            {
                new DestViewModel {
                    Id = "1"
                }, new DestViewModel {
                    Id = "2"
                },
                new DestViewModel {
                    Id = "3"
                }, new DestViewModel {
                    Id = "4"
                }
            }.AsQueryable();

            Assert.Equal(expected, actual, new DestViewModelComparer());

            destRepoBuilder.DestRepoMock.Verify();
            destRepoBuilder.DestRepoMock.Verify(d => d.AddAsync(It.IsAny <Destination>()), Times.Never);
            destRepoBuilder.DestRepoMock.Verify(d => d.SaveChangesAsync(), Times.Never);
        }
        public void FindToDeleteDestination_ShouldReturn_DestViewModel()
        {
            var user = new GoUser {
                Id = "7"
            };

            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();

            var sut = new DestinationService(destRepo, null, null, null, null, null, null, Mapper);

            var actual = sut.FindToDeleteDestination("3", user);

            Assert.IsType <DestViewModel>(actual);
        }
        public async Task DeleteDestination_ShouldDeleteDestinationCorrectly()
        {
            Destination destination = null;

            var destRepoBuilder = new DestinationsRepositoryBuilder();

            destRepoBuilder.DestRepoMock.Setup(r => r.Delete(It.IsAny <Destination>()))
            .Callback <Destination>(d => destination = d);

            var destRepo = destRepoBuilder
                           .WithAll()
                           .Build();

            var sut = new DestinationService(destRepo, null, null, null, null, null, null, Mapper);

            await sut.DeleteDestination("2");

            Assert.Equal("2", destination.Id);
            destRepoBuilder.DestRepoMock.Verify();

            destRepoBuilder.DestRepoMock.Verify(d => d.Delete(It.IsAny <Destination>()), Times.Once);
            destRepoBuilder.DestRepoMock.Verify(d => d.SaveChangesAsync(), Times.Once);
        }
        public async Task AddUserToDestination_ShouldThrowIfEnddateToJoinIsPassed()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();

            var destUsersRepoBuilder = new DestinationsUsersRepositoryBuilder();
            var destUserRepo         = destUsersRepoBuilder
                                       .WithAll()
                                       .Build();

            var sut = new DestinationService(destRepo, destUserRepo, null, null, null, null, null, null);

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.AddUserToDestination(new GoUser()
            {
                Id = "3"
            }, "3"));

            ex.Message.ShouldBe("The end date to join is passed");
            destUsersRepoBuilder.DestUsersRepoMock.Verify();
            destUsersRepoBuilder.DestUsersRepoMock.Verify(d => d.AddAsync(It.IsAny <DestinationsUsers>()), Times.Never);
            destUsersRepoBuilder.DestUsersRepoMock.Verify(d => d.SaveChangesAsync(), Times.Never);
        }
        public async Task AddUserToDestination_ShouldThrowIfDestinationsUserAureadyExist()
        {
            var destRepoBuilder = new DestinationsRepositoryBuilder();
            var destRepo        = destRepoBuilder
                                  .WithAll()
                                  .Build();

            var destUsersRepoBuilder = new DestinationsUsersRepositoryBuilder();
            var destUserRepo         = destUsersRepoBuilder
                                       .WithAll()
                                       .Build();

            var sut = new DestinationService(destRepo, destUserRepo, null, null, null, null, null, null);

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.AddUserToDestination(new GoUser()
            {
                Id = "3"
            }, "1"));

            ex.Message.ShouldBe("You are auready in this group.");
            destUsersRepoBuilder.DestUsersRepoMock.Verify();
            destUsersRepoBuilder.DestUsersRepoMock.Verify(d => d.AddAsync(It.IsAny <DestinationsUsers>()), Times.Never);
            destUsersRepoBuilder.DestUsersRepoMock.Verify(d => d.SaveChangesAsync(), Times.Never);
        }