コード例 #1
0
            public async void Should_return_BadRequest_when_model_is_null()
            {
                //Arrange
                UserUpdate user             = null;
                var        userId           = 1;
                var        returnExistValue = true;
                var        key             = "Me_StatusCode_400_BadRequest";
                var        localizedString = new LocalizedString(key, "Bad Request");

                LocalizerMock
                .Setup(_ => _[key])
                .Returns(localizedString);

                // Service
                UserServiceMock.Setup(x => x.IsExistAsync(userId)).ReturnsAsync(returnExistValue);

                // set header values
                ControllerUnderTest.ControllerContext.HttpContext.Request.Headers.Add("id", userId.ToString());

                //Act
                var result = await ControllerUnderTest.Update(user);

                //Assert
                Assert.IsType <BadRequestObjectResult>(result);
            }
コード例 #2
0
            public async void Should_return_CreatedResult_when_model_Is_valid()
            {
                // Arrange
                var returnExistValue = true;
                var address          = AddressData;
                int userId           = 1;
                var resultObject     = new Address
                {
                    Address1    = "1601 Hood Avenue",
                    Address2    = "dolore in adipisicing et",
                    City        = "San Diego",
                    CountryCode = "11",
                    PinCode     = "92103",
                    StateId     = 1
                };

                AddressServiceMock
                .Setup(x => x.CreateAsync(userId, address))
                .ReturnsAsync(resultObject);

                UserServiceMock
                .Setup(x => x.IsExistAsync(userId))
                .ReturnsAsync(true);

                //Act
                UserServiceMock.Setup(x => x.IsExistAsync(userId)).ReturnsAsync(returnExistValue);
                var result = await ControllerUnderTest.CreateAddress(userId, address);

                //Assert
                var okResult = Assert.IsType <CreatedResult>(result);

                Assert.Same(resultObject, okResult.Value);
            }
コード例 #3
0
            public async Task WhenAddFailsReturnsMessage()
            {
                var user         = TestUtils.GetRandomUser();
                var lobbyMessage = new LobbyMessage
                {
                    Id = 1,
                    MessageDateTime = DateTime.UtcNow,
                    MessageText     = "Test Message",
                    Sender          = user
                };

                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(user);
                MessageServiceMock.Setup(ms => ms.AddMessageAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(lobbyMessage);

                var result = await Controller.AddMessage(new AddMessageRequest());

                var response = TestUtils.GetResponseFromResult <AddMessageResponse>(result);

                Assert.IsTrue(response.Success);
                Assert.AreEqual(lobbyMessage.Id, response.NewMessage.Id);
                Assert.AreEqual(lobbyMessage.MessageText, response.NewMessage.Message);
                Assert.AreEqual(lobbyMessage.MessageDateTime, response.NewMessage.Time);
                Assert.AreEqual(lobbyMessage.Sender.UserName, response.NewMessage.User);

                SubscriberMock.Verify(s => s.PublishAsync(It.IsAny <RedisChannel>(), It.IsAny <RedisValue>(), It.IsAny <CommandFlags>()), Times.Once);
            }
コード例 #4
0
            public async Task Should_return_OkObjectResult_with_users()
            {
                //Arrange
                var expectedUsers = new User[]
                {
                    new User {
                        Name = "Gabriel Meyer", Email = "*****@*****.**"
                    },
                    new User {
                        Name = "Renato Rezende", Email = "*****@*****.**"
                    }
                };

                UserServiceMock
                .Setup(x => x.GetAllAsync())
                .ReturnsAsync(expectedUsers);

                //Act
                var result = await ControllerUnderTest.GetAllAsync();

                //Assert
                var okResult = Assert.IsType <OkObjectResult>(result);

                Assert.Same(expectedUsers, okResult.Value);
            }
コード例 #5
0
            public async Task WhenUserNotFoundReturnsNotFound()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync((Data.Models.GametekiUser)null);

                var result = await Controller.UpdateUser(TestUser, new ApiUserAdmin());

                Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            }
コード例 #6
0
            public async Task WhenTokenNotFoundReturnsNotFound()
            {
                UserServiceMock.Setup(us => us.GetRefreshTokenByIdAsync(It.IsAny <int>()))
                .ReturnsAsync((RefreshToken)null);

                var result = await Controller.DeleteUserSession(TestUser, 1);

                Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            }
コード例 #7
0
            public async Task WhenUsernameNotFoundReturnsNotFound()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>()))
                .ReturnsAsync((GametekiUser)null);

                var result = await Controller.UpdateProfile(TestUser, new UpdateProfileRequest());

                Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            }
コード例 #8
0
            public async Task WhenUsernameNotFoundReturnsNotFound()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>()))
                .ReturnsAsync((GametekiUser)null);

                var result = await Controller.RemoveBlockListEntry(TestUser, "Blocked");

                Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            }
コード例 #9
0
            public async Task WhenMessageNotFoundReturnsNotFound()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(TestUtils.GetRandomUser());
                MessageServiceMock.Setup(ms => ms.FindByIdAsync(It.IsAny <int>())).ReturnsAsync((LobbyMessage)null);

                var result = await Controller.RemoveMessage(1);

                Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            }
コード例 #10
0
            public async Task WhenUserNotFoundReturnsFailure()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync((GametekiUser)null);

                var result = await Controller.AddMessage(new AddMessageRequest());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #11
0
            public async Task WhenLoginFailsReturnsUnauthorised()
            {
                UserServiceMock
                .Setup(us => us.LoginUserAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
                .ReturnsAsync((LoginResult)null);

                var result = await Controller.Login(new LoginRequest());

                Assert.IsInstanceOfType(result, typeof(UnauthorizedResult));
            }
コード例 #12
0
            public async Task WhenGetUsernameFailsReturnsFailureResponse()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>()))
                .ReturnsAsync((GametekiUser)null);

                var result = await Controller.CheckAuth();

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #13
0
            public async Task WhenAddFailsReturnsFailure()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(TestUtils.GetRandomUser());
                MessageServiceMock.Setup(ms => ms.AddMessageAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync((LobbyMessage)null);

                var result = await Controller.AddMessage(new AddMessageRequest());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #14
0
            public async Task WhenLogoutSucceedsReturnsSuccessResponse()
            {
                UserServiceMock.Setup(us => us.LogoutUserAsync(It.IsAny <string>(), It.IsAny <string>()))
                .ReturnsAsync(true);

                var result = await Controller.Logout(new RefreshTokenRequest());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsTrue(response.Success);
            }
コード例 #15
0
            public async Task WhenGetUsernameSucceedsReturnsSuccessResponse()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>()))
                .ReturnsAsync(TestUtils.GetRandomUser());

                var result = await Controller.CheckAuth();

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsTrue(response.Success);
            }
コード例 #16
0
            public async Task WhenValidateSucceedsReturnsSuccessResponse()
            {
                UserServiceMock.Setup(us => us.ValidateUserAsync(It.IsAny <string>(), It.IsAny <string>()))
                .ReturnsAsync(true);

                var result = await Controller.ActivateAccount(new VerifyAccountRequest());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsTrue(response.Success);
            }
コード例 #17
0
            public async Task WhenUpdateFailsReturnsFailureResponse()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(TestUtils.GetRandomUser());
                UserServiceMock.Setup(us => us.UpdateUserAsync(It.IsAny <Data.Models.GametekiUser>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(IdentityResult.Failed());

                var result = await Controller.UpdateUser(TestUser, new ApiUserAdmin());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #18
0
            public async Task WhenRefreshTokenFailsReturnsFailureResponse()
            {
                UserServiceMock
                .Setup(us => us.RefreshTokenAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
                .ReturnsAsync((LoginResult)null);

                var result = await Controller.GetNewToken(new RefreshTokenRequest());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #19
0
            public async Task WhenDeleteTokenFailsReturnsFailure()
            {
                UserServiceMock.Setup(us => us.GetRefreshTokenByIdAsync(It.IsAny <int>()))
                .ReturnsAsync(new RefreshToken());
                UserServiceMock.Setup(us => us.DeleteRefreshTokenAsync(It.IsAny <RefreshToken>())).ReturnsAsync(false);

                var result = await Controller.DeleteUserSession(TestUser, 1);

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #20
0
            public async Task WhenRemoveFailsReturnsFailure()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(TestUtils.GetRandomUser());
                MessageServiceMock.Setup(ms => ms.FindByIdAsync(It.IsAny <int>())).ReturnsAsync(new LobbyMessage());
                MessageServiceMock.Setup(ms => ms.UpdateMessageAsync(It.IsAny <LobbyMessage>())).ReturnsAsync(false);

                var result = await Controller.RemoveMessage(1);

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #21
0
            public async Task WhenAddingEntryFailsReturnsFailureResponse()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>()))
                .ReturnsAsync(TestUtils.GetRandomUser());
                UserServiceMock.Setup(us => us.AddBlockListEntryAsync(It.IsAny <GametekiUser>(), It.IsAny <string>()))
                .ReturnsAsync(false);

                var result = await Controller.AddBlockListEntry(TestUser, new BlockListEntryRequest());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #22
0
            public async Task WhenUserCannotManagePermissionsDoesNotSetPermissions()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(TestUtils.GetRandomUser());
                UserServiceMock.Setup(us => us.UpdateUserAsync(It.IsAny <Data.Models.GametekiUser>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(IdentityResult.Success);

                var result = await Controller.UpdateUser(TestUser, new ApiUserAdmin());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsTrue(response.Success);

                UserServiceMock.Verify(us => us.UpdatePermissionsAsync(It.IsAny <Data.Models.GametekiUser>(), It.IsAny <Data.Models.Permissions>()), Times.Never);
            }
コード例 #23
0
            public async Task WhenGravatarEnabledReturnsAvatar()
            {
                var user = TestUtils.GetRandomUser();

                user.EmailHash = user.Email.Md5Hash();
                user.Settings.EnableGravatar = true;

                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(user);

                await Controller.UpdateAvatar(user.UserName);

                HttpClientMock.Verify(hc => hc.DownloadFileAsync($"https://www.gravatar.com/avatar/{user.EmailHash.ToLower()}?d=identicon&s=24", It.IsAny <string>()), Times.Once);
            }
コード例 #24
0
            public async Task WhenDownloadFailsReturnsFailure()
            {
                var user = TestUtils.GetRandomUser();

                user.Settings.EnableGravatar = false;

                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(user);

                var result = await Controller.UpdateAvatar(user.UserName);

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsFalse(response.Success);
            }
コード例 #25
0
            public async Task WhenDeleteTokenSucceedsReturnsDeleteResponse()
            {
                UserServiceMock.Setup(us => us.GetRefreshTokenByIdAsync(It.IsAny <int>()))
                .ReturnsAsync(new RefreshToken {
                    Id = 1
                });
                UserServiceMock.Setup(us => us.DeleteRefreshTokenAsync(It.IsAny <RefreshToken>())).ReturnsAsync(true);

                var result = await Controller.DeleteUserSession(TestUser, 1);

                var response = TestUtils.GetResponseFromResult <DeleteSessionResponse>(result);

                Assert.IsTrue(response.Success);
                Assert.AreEqual(1, response.TokenId);
            }
コード例 #26
0
            public async Task WhenAddingEntrySucceedsReturnsSuccessResponse()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>()))
                .ReturnsAsync(TestUtils.GetRandomUser());
                UserServiceMock.Setup(us => us.AddBlockListEntryAsync(It.IsAny <GametekiUser>(), It.IsAny <string>()))
                .ReturnsAsync(true);

                var result =
                    await Controller.AddBlockListEntry(TestUser, new BlockListEntryRequest { Username = "******" });

                var response = TestUtils.GetResponseFromResult <BlockListEntryResponse>(result);

                Assert.IsTrue(response.Success);
                Assert.AreEqual("Test", response.Username);
            }
コード例 #27
0
            public async Task WhenEntryNotOnListReturnsNotFound()
            {
                var user = TestUtils.GetRandomUser();

                user.BlockList = new List <BlockListEntry> {
                    new BlockListEntry {
                        BlockedUser = "******"
                    }
                };

                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(user);

                var result = await Controller.RemoveBlockListEntry(TestUser, "notfound");

                Assert.IsInstanceOfType(result, typeof(NotFoundResult));
            }
コード例 #28
0
            public async Task WhenUpdateSucceedsReturnsUpdateResponse()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>()))
                .ReturnsAsync(TestUtils.GetRandomUser());
                UserServiceMock.Setup(us =>
                                      us.UpdateUserAsync(It.IsAny <GametekiUser>(), It.IsAny <string>(), It.IsAny <string>()))
                .ReturnsAsync(IdentityResult.Success);

                var result = await Controller.UpdateProfile(
                    TestUser,
                    new UpdateProfileRequest { Settings = new ApiSettings(), Email = "*****@*****.**" });

                var response = TestUtils.GetResponseFromResult <UpdateProfileResponse>(result);

                Assert.IsTrue(response.Success);
            }
コード例 #29
0
            public async void Should_return_OkResult_when_model_is_valid()
            {
                //Arrange
                var userId           = 6;
                var user             = UserUpdate;
                var returnExistValue = true;

                // Service
                UserServiceMock.Setup(x => x.IsExistAsync(userId)).ReturnsAsync(returnExistValue);

                //Act
                var result = await ControllerUnderTest.Update(userId, user);

                //Assert
                Assert.IsType <OkResult>(result);
            }
コード例 #30
0
            public async Task WhenUserCanManagePermissionsAndSettingSucceedsReturnsSuccess()
            {
                UserServiceMock.Setup(us => us.GetUserFromUsernameAsync(It.IsAny <string>())).ReturnsAsync(TestUtils.GetRandomUser());
                UserServiceMock.Setup(us => us.UpdateUserAsync(It.IsAny <Data.Models.GametekiUser>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(IdentityResult.Success);
                UserServiceMock.Setup(us => us.UpdatePermissionsAsync(It.IsAny <Data.Models.GametekiUser>(), It.IsAny <Data.Models.Permissions>())).ReturnsAsync(true);

                Controller.HttpContext.User.AddIdentity(new ClaimsIdentity(new List <Claim> {
                    new Claim(ClaimTypes.Role, Roles.PermissionsManager)
                }));

                var result = await Controller.UpdateUser(TestUser, new ApiUserAdmin());

                var response = TestUtils.GetResponseFromResult <ApiResponse>(result);

                Assert.IsTrue(response.Success);
            }