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(); }
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()); }
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); }