示例#1
0
        public async Task OffererDeletePhoto()
        {
            // Arrange
            var user   = UserRegisterModelFactory.getUserFactory("Offerer").getUser();
            var photo  = new Photo("Photo", await File.ReadAllBytesAsync("..\\..\\..\\Photo\\image.jpeg"), user.Id);
            var coupon = CouponModelFactory.Default();

            user.AddCoupon(coupon);
            coupon.AddPhoto(photo);
            coupon.RemovePhoto(photo.Id);
            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(user);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.DeleteAsync($"api/coupons/{coupon.Id}/photos/{photo.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var photos = await response.Content.ReadAsAsync <IList <CouponModel> >();

            photos.Should().BeNull();
        }
示例#2
0
        protected async Task <(Guid, string)> SetAuthenticationToken(string role)
        {
            var userFactory = UserRegisterModelFactory.getUserFactory(role);

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

            userRegisterResponse.IsSuccessStatusCode.Should().BeTrue();
            var user = userFactory.getUser();
            var authenticatedUserId = new Guid(userRegisterResponse.Headers.Location.OriginalString);
            var authenticateModel   = new AuthenticationRequest
            {
                Username = user.UserName,
                Password = userRegisterModel.Password
            };

            var userAuthenticateResponse = await HttpClient.PostAsJsonAsync($"api/v1/auth/login", authenticateModel);

            userAuthenticateResponse.IsSuccessStatusCode.Should().BeTrue();
            var authenticationResponseContent = await userAuthenticateResponse.Content.ReadAsAsync <AuthenticationResponse>();

            var userAuthenticationToken = authenticationResponseContent.Token;

            return(authenticatedUserId, userAuthenticationToken);
        }
示例#3
0
        public async Task GetRedeemedCoupon()
        {
            // Arrange
            var offerer = UserRegisterModelFactory.getUserFactory("Offerer").getUser();
            var coupon  = CouponModelFactory.Default();

            offerer.AddCoupon(coupon);
            var student    = new Student(this.AuthenticatedUserId);
            var admin      = UserRegisterModelFactory.getUserFactory("Admin").getUser();
            var university = InstitutionsModelFactory.University();
            var faculty    = InstitutionsModelFactory.Faculty();

            university.AddFaculty(faculty);
            faculty.AddStudent(student);

            var redeemedcoupon = new RedeemedCoupon("Used", coupon.Id);

            student.AddRedeemedCoupon(redeemedcoupon);
            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(admin);
                await couponelContext.Users.AddAsync(offerer);
                await couponelContext.Universities.AddAsync(university);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.GetAsync($"/api/redeemedCoupons/{redeemedcoupon.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var redeemedcoupons = await response.Content.ReadAsAsync <RedeemedCoupon>();

            redeemedcoupons.Should().NotBeNull();
        }
示例#4
0
        public async Task OffererDeleteComment()
        {
            // Arrange
            var user = UserRegisterModelFactory.getUserFactory("Offerer").getUser();

            var coupon = CouponModelFactory.Default();

            user.AddCoupon(coupon);
            var comment = new Comment("content", AuthenticatedUserId);

            coupon.AddComment(comment);
            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(user);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.DeleteAsync($"api/coupons/{coupon.Id}/comments/{comment.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var comments = await response.Content.ReadAsAsync <IList <CouponModel> >();

            comments.Should().BeNull();
        }
示例#5
0
        public async Task GetStudentUser()
        {
            // Arrange
            var admin      = UserRegisterModelFactory.getUserFactory("admin").getUser();
            var user       = UserRegisterModelFactory.getUserFactory("Student").getUser();
            var student    = new Student(user.Id);
            var university = InstitutionsModelFactory.University();
            var faculty    = InstitutionsModelFactory.Faculty();

            university.AddFaculty(faculty);
            faculty.AddStudent(student);
            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(admin);
                await couponelContext.Users.AddAsync(user);
                await couponelContext.Universities.AddAsync(university);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.GetAsync($"api/users/{user.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var users = await response.Content.ReadAsAsync <StudentModel>();

            users.Should().NotBeNull();
        }
示例#6
0
        public async Task GetOffererUser()
        {
            // Arrange
            var user = UserRegisterModelFactory.getUserFactory("Offerer").getUser();

            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(user);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.GetAsync($"api/users/{user.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var users = await response.Content.ReadAsAsync <UserModel>();

            users.Should().NotBeNull();
        }
示例#7
0
        public async Task DeleteUniversity()
        {
            // Arrange
            var user       = UserRegisterModelFactory.getUserFactory("Admin").getUser();
            var university = InstitutionsModelFactory.University();

            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(user);
                await couponelContext.Universities.AddAsync(university);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.DeleteAsync($"api/universities/{university.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var universities = await response.Content.ReadAsAsync <UniversityModel>();

            universities.Should().BeNull();
        }
示例#8
0
        public async Task UpdateUniversity()
        {
            // Arrange
            var user       = UserRegisterModelFactory.getUserFactory("Admin").getUser();
            var university = InstitutionsModelFactory.University();

            university.Update("university", "*****@*****.**", "0456324862", InstitutionsModelFactory.Address());
            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(user);
                await couponelContext.Universities.AddAsync(university);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.GetAsync($"api/universities/{university.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var universities = await response.Content.ReadAsAsync <UniversityModel>();

            universities.Address.Street.Should().Be("Bucuriei");
        }
示例#9
0
        public async Task OffererUpdateCoupon()
        {
            // Arrange
            var user = UserRegisterModelFactory.getUserFactory("Offerer").getUser();

            var coupon = CouponModelFactory.Default();

            user.AddCoupon(coupon);
            coupon.Update("da", "electronice", new DateTime(2022, 04, 12, 12, 32, 12), "descriere");
            await ExecuteDatabaseAction(async couponelContext =>
            {
                await couponelContext.Users.AddAsync(user);
                await couponelContext.SaveChangesAsync();
            });

            //Act
            var response = await HttpClient.GetAsync($"api/coupons/{coupon.Id}");

            // Assert
            response.IsSuccessStatusCode.Should().BeTrue();
            var coupons = await response.Content.ReadAsAsync <CouponModel>();

            coupons.Name.Should().Be("da");
        }