public async Task <ActionResult <FriendsRelationDto> > AddRelation(string userId, FriendsRelationToAddDto relationToAdd) { try { if (Guid.TryParse(userId, out Guid gUserId)) { if (await _userService.CheckIfUserExists(gUserId) && await _userService.CheckIfUserExists(relationToAdd.FriendId)) { FriendsRelationDto addedRealtion = await _relationService.AddRelationAsync(gUserId, relationToAdd); return(CreatedAtRoute("GetRelation", new { userId, friendId = addedRealtion.FriendId }, addedRealtion)); } else { return(NotFound($"User: {userId} or friend: {relationToAdd.FriendId} not found.")); } } else { return(BadRequest($"{userId} is not valid guid.")); } } catch (Exception ex) { _logger.LogError(ex, "Error occured during adding the user relation. User id: {user}, friend id {FriendId}", userId, relationToAdd.FriendId); return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public async void AddRelation_ReturnsCreatedAtRouteResult_WithRelationData() { //Arrange _mockUserService.Setup(Service => Service.CheckIfUserExists(It.IsAny <Guid>())) .ReturnsAsync(true) .Verifiable(); FriendsRelationDto relationEntity = _mapper.Map <FriendsRelationDto>(_relationToAdd); relationEntity.UserId = new Guid(ConstIds.ExampleUserId); relationEntity.FriendId = new Guid(ConstIds.ExampleFromWhoId); _mockRelationService.Setup(Service => Service.AddRelationAsync(It.IsAny <Guid>(), It.IsAny <FriendsRelationToAddDto>())) .ReturnsAsync(relationEntity) .Verifiable(); var controller = new FriendsRelationsController(_loggerMock.Object, _mockUserService.Object, _mockRelationService.Object); //Act var result = await controller.AddRelation(ConstIds.ExampleUserId, _relationToAdd); //Assert var redirectToActionResult = Assert.IsType <CreatedAtRouteResult>(result.Result); Assert.Equal(ConstIds.ExampleUserId, redirectToActionResult.RouteValues["userId"].ToString()); Assert.Equal(ConstIds.ExampleFromWhoId, redirectToActionResult.RouteValues["friendId"].ToString()); Assert.Equal("GetRelation", redirectToActionResult.RouteName); Assert.IsType <FriendsRelationDto>(redirectToActionResult.Value); _mockUserService.Verify(); _mockRelationService.Verify(); }
public ActionResult <FriendsRelationDto> GetRelation(string userId, string friendId) { if (Guid.TryParse(userId, out Guid gUserId) && Guid.TryParse(friendId, out Guid gFriendId)) { try { FriendsRelationDto friendsRelation = _relationService.GetFriendRelation(gUserId, gFriendId); return(Ok(friendsRelation)); } catch (Exception ex) { _logger.LogError(ex, "Error occured during getting the friends relation. Users id: {userId} and {friendId}", userId, friendId); return(StatusCode(StatusCodes.Status500InternalServerError)); } } else { return(BadRequest($"{userId} or {friendId} is not valid guid.")); } }