コード例 #1
0
        public async Task AddUserToDestination_ShouldDoNotWorkCorrectlyIfDestinationDoNotExist()
        {
            var destination = new List <Destination>
            {
                new Destination
                {
                    Id = "1"
                }
            }.AsQueryable();

            var destRepoMock = new Mock <IRepository <Destination> >();

            destRepoMock.Setup(d => d.All())
            .Returns(destination).Verifiable();

            var sut = new DestinationService(destRepoMock.Object, null, null, null, null, null, null, null);

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

            ex.Message.ShouldBe("Destination not exist");
            destRepoMock.Verify();
        }
コード例 #2
0
        public async Task AddUserToDestination_ShouldWorkCorrectlyAnd_ReturnViewModel()
        {
            var dest = new Destination
            {
                Id            = "1",
                EndDateToJoin = DateTime.Now.AddDays(3)
            };

            var destination = new List <Destination>
            {
                dest
            }.AsQueryable();

            var destRepoMock = new Mock <IRepository <Destination> >();

            destRepoMock.Setup(d => d.All())
            .Returns(destination).Verifiable();

            var user = new GoUser()
            {
                Id = "2"
            };

            var du = new DestinationsUsers {
                DestinationId = "7", ParticipantId = "5"
            };
            var destUsers = new List <DestinationsUsers> {
                du
            }.AsQueryable();

            var destUserRepoMock = new Mock <IRepository <DestinationsUsers> >();

            destUserRepoMock.Setup(d => d.All())
            .Returns(destUsers).Verifiable();

            var sut = new DestinationService(destRepoMock.Object, destUserRepoMock.Object, null, null, null, null, null, null);

            var actual = await sut.AddUserToDestination(user, "1");

            DestUserViewModel expected = new DestUserViewModel()
            {
                DestinationId = dest.Id,
                ParticipantId = user.Id
            };

            destRepoMock.Verify();

            Assert.Equal(expected, actual, new DestUserViewModelComparer());
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }