Esempio n. 1
0
        public async Task Sms_ClientForceCreateUserTest()
        {
            var testRequest = new ForceCreateUserRequest(
                true, "customTemplate", "", "ru-RU", "userName", 123456, new List <string> {
                "1", "2", "3"
            });

            var accountRepository     = container.Resolve <IAccountRepository>();
            var accountRepositoryMock = Mock.Get(accountRepository);

            accountRepositoryMock
            .Setup(s => s.FindByPhone(It.IsAny <decimal>()))
            .ReturnsAsync((Account)null);


            var roleRepository     = container.Resolve <IRoleRepository>();
            var roleRepositoryMock = Mock.Get(roleRepository);

            roleRepositoryMock
            .Setup(s => s.GetByRoleNames(It.IsAny <string[]>()))
            .ReturnsAsync(testRequest.Roles.Select(x => new Repository.Model.Role()
            {
                Name = x
            }).ToArray());


            using (var http = new HttpClient())
            {
                var client = new Domain0Client(TEST_URL, http);
                http.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Bearer",
                                                  TestContainerBuilder.BuildToken(container, 1, TokenClaims.CLAIM_PERMISSIONS_FORCE_CREATE_USER));

                await client.ForceCreateUserAsync(testRequest);

                accountRepositoryMock.Verify(ar =>
                                             ar.Insert(It.Is <Account>(a =>
                                                                       a.Name == testRequest.Name &&
                                                                       a.Phone == testRequest.Phone)),
                                             Times.Once());

                roleRepositoryMock.Verify(rr =>
                                          rr.GetByRoleNames(It.Is <string[]>(s => testRequest.Roles.SequenceEqual(s))),
                                          Times.Once);
            }
        }
        private Task <UserProfile> ForceCreateUserApi(IEnumerable <Role> roles)
        {
            var rolesNames = roles
                             .Select(x => x.Name)
                             .ToList();

            switch ((ForceCreateUserModeEnum)ForceCreateUserMode)
            {
            case ForceCreateUserModeEnum.Phone:
                var phone          = long.Parse(Phone);
                var requestByPhone = new ForceCreateUserRequest(
                    BlockSmsSend,
                    CustomSmsTemplate,
                    Environment?.Token,
                    Locale,
                    Name,
                    phone,
                    rolesNames);
                return(_domain0.Client.ForceCreateUserAsync(requestByPhone));

            case ForceCreateUserModeEnum.Email:
                var requestByEmail = new ForceCreateEmailUserRequest(
                    BlockEmailSend,
                    CustomEmailSubjectTemplate,
                    CustomEmailTemplate,
                    Email,
                    Environment?.Token,
                    Locale,
                    Name,
                    rolesNames);
                return(_domain0.Client.ForceCreateUser2Async(requestByEmail));

            default:
                throw new ArgumentException();
            }
        }