public async Task AddNewActivity()
        {
            //Arrange
            var activityType = ActivityTypeFactory.Default();
            var city         = CityFactory.Default();

            var activity = new CreateActivityModel()
            {
                ActivityTypeId = activityType.Id,
                Address        = "test address",
                CityId         = city.Id,
                Description    = "test description",
                Name           = "test name"
            };

            //Act
            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                await doFestContext.ActivityTypes.AddAsync(activityType);
                await doFestContext.Cities.AddAsync(city);
                await doFestContext.SaveChangesAsync();
            });

            //Assert
            var response = await HttpClient.PostAsJsonAsync($"/api/v1/activities", activity);

            response.IsSuccessStatusCode.Should().BeTrue();
        }
        public async Task DeleteActivity()
        {
            //Arrange
            var activityType = ActivityTypeFactory.Default();
            var city         = CityFactory.Default();
            var activity     = new Activity(activityType.Id, city.Id, "test name", "test description", "test address");

            //Act
            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                await doFestContext.ActivityTypes.AddAsync(activityType);
                await doFestContext.Cities.AddAsync(city);
                await doFestContext.SaveChangesAsync();
            });

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                await doFestContext.Activities.AddAsync(activity);
                await doFestContext.SaveChangesAsync();
            });

            var response = await HttpClient.DeleteAsync($"/api/v1/activities/{activity.Id}");

            //Assert
            response.IsSuccessStatusCode.Should().BeTrue();
        }
        public async Task AddActivityInBucketList()
        {
            //Arrange
            var        activityType = ActivityTypeFactory.Default();
            var        city         = CityFactory.Default();
            var        activity     = ActivityFactory.Default(city.Id, activityType.Id);
            BucketList bucket       = null;

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                await doFestContext.ActivityTypes.AddAsync(activityType);
                await doFestContext.Cities.AddAsync(city);
                await doFestContext.Activities.AddAsync(activity);
                await doFestContext.SaveChangesAsync();

                bucket = await doFestContext
                         .BucketLists
                         .FirstOrDefaultAsync(x => x.UserId == AuthenticatedUserId);
            });

            //Act
            var response = await HttpClient.PostAsync($"/api/v1/bucketlists/{bucket.Id}/activities/{activity.Id}", null);

            //Assert
            response.IsSuccessStatusCode.Should().BeTrue();
        }
        public async Task UpdateBucketList()
        {
            //Arrange
            var        activityType = ActivityTypeFactory.Default();
            var        city         = CityFactory.Default();
            var        activity     = ActivityFactory.Default(city.Id, activityType.Id);
            BucketList bucket       = null;
            var        updateModel  = new BucketListUpdateModel()
            {
                Name = "bucketlist test",
                ActivitiesForDelete = new List <Guid>(),
                ActivitiesForToggle = new List <Guid>()
            };

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                bucket = await doFestContext
                         .BucketLists
                         .FirstOrDefaultAsync(x => x.UserId == AuthenticatedUserId);
                await doFestContext.Cities.AddAsync(city);
                await doFestContext.ActivityTypes.AddAsync(activityType);
                await doFestContext.Activities.AddAsync(activity);
                await doFestContext.SaveChangesAsync();
                await doFestContext.BucketListActivities.AddAsync(new BucketListActivity(bucket.Id, activity.Id));
                await doFestContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.PutAsJsonAsync($"/api/v1/bucketlists/{bucket.Id}/activities", updateModel);

            //Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            BucketList existingBucketList = null;

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                existingBucketList = await doFestContext
                                     .BucketLists
                                     .FirstOrDefaultAsync(x => x.UserId == AuthenticatedUserId);
            });

            existingBucketList.Should().NotBeNull();
            existingBucketList.Name.Should().Be(updateModel.Name);
        }
Beispiel #5
0
        public async Task DeleteCityTest()
        {
            //Arrange
            var city = CityFactory.Default().WithName("Bacau");

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                await doFestContext.Cities.AddAsync(city);
                await doFestContext.SaveChangesAsync();
            });

            // Act
            var response = await HttpClient.DeleteAsync($"/api/v1/cities/{city.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            City existingCity = null;

            await ExecuteDatabaseAction(async (doFestContext) => {
                existingCity = await doFestContext.Cities.FirstOrDefaultAsync(entity => entity.Name == city.Name);
            });

            existingCity.Should().BeNull();
        }
Beispiel #6
0
        private async Task SetAuthenticationToken()
        {
            UserType userType = UserTypeFactory.Default();
            UserType admin    = UserTypeFactory.Default().WithName("Admin");

            City city = CityFactory.Default();

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                await doFestContext.UserTypes.AddAsync(userType);
                await doFestContext.UserTypes.AddAsync(admin);
                await doFestContext.Cities.AddAsync(city);
                await doFestContext.SaveChangesAsync();
                CityId = city.Id;
            });

            var userRegisterModel = new RegisterModel
            {
                Username       = "******",
                Age            = 20,
                BucketListName = "test bucketlist",
                City           = city.Id,
                Email          = "*****@*****.**",
                Name           = "testtest",
                Password       = "******",
                Year           = 3
            };

            var userRegisterResponse = await HttpClient.PostAsJsonAsync($"api/v1/auth/register", userRegisterModel);

            userRegisterResponse.IsSuccessStatusCode.Should().BeTrue();
            if (_isAdmin == true)
            {
                var userRespository    = new UserRepository(dbContext);
                var userTypeRepository = new UserTypeRepository(userTypeDbContext);
                var userTypeAdmin      = await userTypeRepository.GetByName("Admin");

                var user = await userRespository.GetByEmail(userRegisterModel.Email);

                user.UserTypeId = userTypeAdmin.Id;
                userRespository.Update(user);
                await userRespository.SaveChanges();
            }
            var authenticateModel = new LoginModelRequest
            {
                Email    = userRegisterModel.Email,
                Password = userRegisterModel.Password
            };
            var userAuthenticateResponse = await HttpClient.PostAsJsonAsync($"api/v1/auth/login", authenticateModel);

            userAuthenticateResponse.IsSuccessStatusCode.Should().BeTrue();
            AuthenticatedUserId = new Guid();
            var authenticationResponseContent = await userAuthenticateResponse.Content.ReadAsAsync <LoginModelResponse>();

            var stream  = authenticationResponseContent.Token;
            var handler = new JwtSecurityTokenHandler();
            var tokenS  = handler.ReadToken(stream) as JwtSecurityToken;

            AuthenticatedUserId = new Guid(tokenS.Claims.First(x => x.Type == "userId").Value);

            AuthenticationToken = authenticationResponseContent.Token;
        }