Example #1
0
        public async Task EnrollingUserToGroupTripShoudIncreaseGuestsCount()
        {
            var groupTripslist = new List <GroupTrip>
            {
                new GroupTrip
                {
                    Id        = 1,
                    HostId    = "2",
                    FreeSeats = 3,
                },
            };

            var userGroupTripsList = new List <UserGroupTrip>();

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            mockUserGroupTripRepo.Setup(x => x.AllAsNoTracking()).Returns(userGroupTripsList.AsQueryable());

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            await service.EnrollUser(1, "3");

            Assert.Single(groupTripslist.ElementAt(0).Guests);
        }
Example #2
0
        public async Task EnrollingUserToGroupTripWhithNoFreeSeatsShoudThrowException()
        {
            var groupTripslist = new List <GroupTrip>
            {
                new GroupTrip
                {
                    Id        = 1,
                    HostId    = "2",
                    FreeSeats = 0,
                },
            };

            var userGroupTripsList = new List <UserGroupTrip>
            {
                new UserGroupTrip
                {
                    Id          = 1,
                    GuestId     = "1",
                    GroupTripId = 1,
                },
            };

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            var exception = await Assert.ThrowsAsync <OperationCanceledException>(async() => await service.EnrollUser(1, "1"));

            var message = "Всички места за този излет вече са заети!";

            Assert.Equal(message, exception.Message);
        }
Example #3
0
        public async Task EnrollingUserTwoTimesToGroupTripWhichHeCreatedShoudThrowException()
        {
            var groupTripslist = new List <GroupTrip>
            {
                new GroupTrip
                {
                    Id        = 1,
                    HostId    = "1",
                    FreeSeats = 3,
                },
            };

            var mockTownRepo = new Mock <IDeletableEntityRepository <Town> >();
            var townService  = new TownsService(mockTownRepo.Object);

            var mockUserGroupTripRepo = new Mock <IDeletableEntityRepository <UserGroupTrip> >();

            var mockGroupTripRepo = new Mock <IDeletableEntityRepository <GroupTrip> >();

            mockGroupTripRepo.Setup(x => x.All()).Returns(groupTripslist.AsQueryable());
            mockGroupTripRepo.Setup(x => x.AddAsync(It.IsAny <GroupTrip>())).Callback((GroupTrip groupTrip) => groupTripslist.Add(groupTrip));

            var service = new GroupTripsService(townService, mockGroupTripRepo.Object, mockUserGroupTripRepo.Object);

            var exception = await Assert.ThrowsAsync <OperationCanceledException>(async() => await service.EnrollUser(1, "1"));

            var message = "Не може да се запишете за излет създаден от вас!";

            Assert.Equal(message, exception.Message);
        }