public async Task GetRealEstate_Authenticated_ExistingRealEstate_ReturnsRealEstate(int id) { // Arrange var realEstateEntity = db.RealEstateRepository.GetWithIncludes(id); if (realEstateEntity == null) { throw new Exception(noSampleRealEstate); } var expectedRealEstate = _mapper.Map <RealEstateFullDetailDto>(realEstateEntity); var user = db.UserRepository.Get(1); if (user == null) { throw new Exception(noSampleUser); } var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // Act var response = await _client.GetFromJsonAsync <RealEstateFullDetailDto>(_client.BaseAddress + $"/{id}"); // Assert response.Should().BeEquivalentTo(expectedRealEstate); }
public async Task CreateRealEstate_Authenticated_InvalidRealEstate_ShouldReturnBadRequest() { // Arrange var user = db.UserRepository.Get(1); if (user == null) { throw new Exception(noSampleUser); } var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); try { // Act var response = await _client.PostAsJsonAsync("", testRealEstateNullDescription); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); var realEstate = context.RealEstates.Where(r => r.Title == testRealEstate.Title) .FirstOrDefault(); realEstate.Should().BeNull(); } finally { // Incase the real estate got added RemoveLastRealEstateFromDb(testRealEstate.Title); } }
public async Task GetRealEstate_Authenticated_NonExistingRealEstate_ReturnsNotFound() { // Arrange var realEstateEntity = db.RealEstateRepository.Get(-1); if (realEstateEntity != null) { throw new ArgumentException(noSampleRealEstate); } var user = db.UserRepository.Get(1); if (user == null) { throw new Exception(noSampleUser); } var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // Act var response = await _client.GetAsync("/-1"); // Assert response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public async Task RateUser_Authenticated_UnexsistingRatedUser_ShouldReturnNotFound( string unexistingUserName) { // Arrange var ratingUser = db.UserRepository.Get(1); if (ratingUser == null) { throw new Exception(noSampleUser); } var ratedUser = db.UserRepository.Get(unexistingUserName); if (ratedUser != null) { throw new ArgumentNullException("User did exist, " + "please change the username for the non existing testing user."); } var rating = new RatingForCreationDto() { UserName = unexistingUserName, Value = 2 }; var token = FakeToken.CreateFakeTokenByUser(ratingUser); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // Act var response = await _client.PutAsJsonAsync("rate", rating); // Assert response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public async Task GetCommentsForRealEstate_ValidSkipTake_Autheticated_ExsistingRealEstate_ShouldReturnComments( int realEstateId, int skip, int take) { // Arrange var user = db.UserRepository.Get(1); if (user == null) { throw new Exception(noSampleUser); } var expectedCommentsFromDb = db.CommentRepository.GetCommentsForRealEstate(realEstateId, skip, take); if (expectedCommentsFromDb == null || expectedCommentsFromDb.Count < 1) { throw new Exception(noSampleComments); } var expectedCommentsDto = _mapper.Map <IEnumerable <CommentDto> >(expectedCommentsFromDb); var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // Act var response = await _client.GetFromJsonAsync <IEnumerable <CommentDto> >($"{realEstateId}?skip={skip}&take={take}"); // Assert response.Should().BeEquivalentTo(expectedCommentsDto); }
public void find_missing_text_if_the_key_has_default_text_but_it_is_not_the_default_culture_for_a_token_with_namespace() { var token = new FakeToken("KEY1", "the default text"); var cultureInfo = new CultureInfo("fr-FR"); ClassUnderTest.FindMissingText(token, cultureInfo) .ShouldEqual("fr-FR_FakeToken:KEY1"); MockFor <ILocalizationStorage>().AssertWasCalled(x => x.WriteMissing("FakeToken:KEY1", "fr-FR_FakeToken:KEY1", cultureInfo)); }
public async Task PostComment_Authenticated_ValidComment_ShouldPostComment(int realEstateId, string content) { // Arrange var user = db.UserRepository.Get(1); if (user == null) { throw new Exception(noSampleUser); } var realestate = db.RealEstateRepository.Get(realEstateId); if (realestate == null) { throw new Exception(noSampleRealEstate); } var comment = db.CommentRepository.GetCommentByUser(user.UserName, content); if (comment != null) { throw new Exception(commentAlreadyExists); } var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var commnetToPost = new CommentForCreationDto() { RealEstateId = 1, Content = content }; try { // Act var response = await _client.PostAsJsonAsync("", commnetToPost); // Assert response.StatusCode.Should().Be(HttpStatusCode.Created); response.Should().NotBe(""); var addedComment = db.CommentRepository.GetCommentByUser(user.UserName, content); addedComment.Should().NotBeNull(); } finally { RemoveCommentFromDb(user.UserName, content); } }
public async Task RateUser_Authenticated_ExsistingUsers_ShouldCreateRating() { // Arrange var ratingUser = db.UserRepository.Get(1); var ratedUser = db.UserRepository.Get(2); if (ratingUser == null || ratedUser == null) { throw new Exception(noSampleUser); } var oldRating = db.RatingRepository.Get(ratedUser.Id, ratingUser.Id); int?oldScore = oldRating == null ? null : oldRating.Score as int?; var rating = new RatingForCreationDto() { UserName = ratedUser.UserName, Value = 2 }; var token = FakeToken.CreateFakeTokenByUser(ratingUser); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); try { // Act var response = await _client.PutAsJsonAsync("rate", rating); // Assert response.StatusCode.Should().Be(HttpStatusCode.OK); var addedRating = db.RatingRepository.Get(ratedUser.Id, ratingUser.Id); addedRating.Should().NotBeNull(); addedRating.Score.Should().Be(rating.Value); } // Finally to ensure that the test-cleanup is always executed finally { // Cleanup incase of test failure RemoveRatingFromDb(ratedUser.Id, ratingUser.Id, oldScore); this.Dispose(); } }
public async Task GetCommentsForRealEstate_Autheticated_UnexsistingRealEstate_ShouldReturnNotFound( int realEstateId, int skip, int take) { // Arrange var user = db.UserRepository.Get(1); if (user == null) { throw new Exception(noSampleUser); } var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // Act var response = await _client.GetAsync($"{realEstateId}?skip={skip}&take={take}"); // Assert response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public async Task GetCommentsByUser_InvalidSkipTake_Autheticated_ExsistingUser_ShouldReturnBadRequest( int userId, int skip, int take) { // Arrange var user = db.UserRepository.Get(userId); if (user == null) { throw new Exception(noSampleUser); } var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // Act var response = await _client.GetAsync($"byuser/{user.UserName}?skip={skip}&take={take}"); // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
public async Task CreateRealEstate_Authenticated_ValidRealEstate_ShouldCreateRealEstate() { // Arrange var realEstate = context.RealEstates.Where(r => r.Title == testRealEstate.Title) .FirstOrDefault(); if (realEstate != null) { throw new Exception("Real estate already exists," + "please change the test real estate or remove the existing record."); } var user = db.UserRepository.Get(1); if (user == null) { throw new Exception(noSampleUser); } var token = FakeToken.CreateFakeTokenByUser(user); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); try { // Act var response = await _client.PostAsJsonAsync("", testRealEstate); // Assert response.StatusCode.Should().Be(HttpStatusCode.Created); realEstate = context.RealEstates.Where(r => r.Title == testRealEstate.Title) .FirstOrDefault(); realEstate.Should().NotBeNull(); } finally { RemoveLastRealEstateFromDb(testRealEstate.Title); } }