Exemplo n.º 1
0
        public async Task AddIqOptionAccountAsync_WithExistingAccount_UpdateShouldReceived()
        {
            //arrange
            var model = new IqOptionRequestViewModel()
            {
                EmailAddress = "*****@*****.**",
                Password     = "******",
            };

            _commangBus.PublishAsync(
                Arg.Any <CreateOrUpdateIqAccountCommand>(),
                Arg.Any <CancellationToken>())
            .Returns(Task.FromResult(new IqAccount()
            {
                IsSuccess = false
            }));


            //act
            var result = await AutoSubstitute.Resolve <PortalController>()
                         .AddIqOptionAccountAsync(model) as BadRequestObjectResult;


            //assert
            result.ShouldNotBeNull();
            result.Value.ShouldBe("ไม่สามารถเพิ่มบัญชีได้");
        }
Exemplo n.º 2
0
        public async Task AddIqOptionAccount_WithNotExistingAccount_NewAccountGenerated()
        {
            //arrange
            var model = new IqOptionRequestViewModel()
            {
                EmailAddress = "*****@*****.**",
                Password     = "******",
            };

            _commangBus.PublishAsync(
                Arg.Any <CreateOrUpdateIqAccountCommand>(),
                Arg.Any <CancellationToken>())
            .Returns(Task.FromResult(new IqAccount()
            {
                IsSuccess = true
            }));


            //act
            var result = await AutoSubstitute.Resolve <PortalController>()
                         .AddIqOptionAccountAsync(model) as RedirectToActionResult;


            //assert
            result.ShouldNotBeNull();
            result.ActionName.ShouldContain(nameof(PortalController.IqOptionAccount));
        }
Exemplo n.º 3
0
        public async Task AddIqOptionAccountAsync_WithAnyModel_CommandBusShouldReceived()
        {
            //arrange
            var model = new IqOptionRequestViewModel()
            {
                EmailAddress = "*****@*****.**",
                Password     = "******",
            };

            _commangBus.PublishAsync(
                Arg.Is <CreateOrUpdateIqAccountCommand>(x => x.AccountDetail.IqOptionUserName.Equals("*****@*****.**")),
                Arg.Any <CancellationToken>())
            .Returns(Task.FromResult(new IqAccount()
            {
                IsSuccess = true
            }));


            //act
            var result = await AutoSubstitute.Resolve <PortalController>()
                         .AddIqOptionAccountAsync(model);


            //assert
            await _commangBus.Received()
            .PublishAsync(Arg.Any <CreateOrUpdateIqAccountCommand>(), Arg.Any <CancellationToken>());
        }
Exemplo n.º 4
0
        public async Task GetTokenAsync_WithEmailOrPasswordEmpty_ResponseWithOk()
        {
            //arrange
            var requestVm = new IqOptionRequestViewModel();

            //act
            var result = await AutoSubstitute.Resolve <IqOptionController>()
                         .GetTokenAsync(requestVm) as OkResult;

            //assert
            result.ShouldNotBeNull();
        }
Exemplo n.º 5
0
        public async Task <IActionResult> AddIqOptionAccountAsync(IqOptionRequestViewModel requestViewModel)
        {
            var iqoptionAccount = _mapper.Map <IqAccount>(requestViewModel);
            var result          = await _commandBus.PublishAsync(
                new CreateOrUpdateIqAccountCommand(IqOptionIdentity.New, iqoptionAccount,
                                                   HttpContext?.User?.Identity?.Name), CancellationToken.None);

            if (result.IsSuccess)
            {
                return(RedirectToAction("IqOptionAccount", "Portal"));
            }
            return(BadRequest("ไม่สามารถเพิ่มบัญชีได้"));
        }
Exemplo n.º 6
0
        public void Mapper_WithUserId_PropertiesShouldSet()
        {
            //arrange
            var model = new IqOptionRequestViewModel();

            model.EmailAddress             = "*****@*****.**";
            model.Password                 = "******";
            model.ProfileResponseViewModel = new IqOptionProfileResponseViewModel {
                UserId = 1234
            };

            //act
            var result = Mapper.Map <IqOptionAccountDto>(model);

            //assert
            Mapper.AssertConfigurationIsValid();
            result.IqOptionUserId.ShouldBe(1234);
        }
Exemplo n.º 7
0
        public void Mapper_WithEmailAndPassword_PropertiesShouldSet()
        {
            Mapper.Reset();
            Mapper.Initialize(c => c.AddProfile <IqOptionAccountDtoMappedProfile>());


            //arrange
            var model = new IqOptionRequestViewModel();

            model.EmailAddress = "*****@*****.**";
            model.Password     = "******";

            //act
            var result = Mapper.Map <IqOptionAccountDto>(model);

            //assert
            Mapper.AssertConfigurationIsValid();
            result.IqOptionUserName.ShouldBe("*****@*****.**");
            result.Password.ShouldBe("password");
        }
Exemplo n.º 8
0
        public async Task <IActionResult> AddIqOptionAccountAsync(IqOptionRequestViewModel requestViewModel)
        {
            var iqoptionAccount = _mapper.Map <IqAccount>(requestViewModel);
            var result          = await _commandBus.PublishAsync(
                new CreateOrUpdateIqAccountCommand(IqIdentity.New, iqoptionAccount,
                                                   HttpContext?.User?.Identity?.Name), CancellationToken.None);

            if (result.IsSuccess)
            {
                //use command to update
                await _commandBus.PublishAsync(
                    new SetActiveAccountcommand(IqIdentity.New,
                                                new SetActiveAccountStatusItem(true, (int)requestViewModel.ProfileResponseViewModel.UserId)),
                    CancellationToken.None);

                return(RedirectToAction("IqOptionAccount", "Portal"));
            }

            return(BadRequest("ไม่สามารถเพิ่มบัญชีได้"));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> GetTokenAsync(IqOptionRequestViewModel requestViewModel)
        {
            if (string.IsNullOrEmpty(requestViewModel.EmailAddress) ||
                string.IsNullOrEmpty(requestViewModel.Password))
            {
                return(Ok());
            }


            try {
                var loginObs = await _commandBus.PublishAsync(new IqLoginCommand(IqIdentity.New, requestViewModel.EmailAddress, requestViewModel.Password), default(CancellationToken));

                if (loginObs.IsSuccess)
                {
                    var profile = await _queryProcessor.ProcessAsync(new GetProfileQuery(loginObs.Ssid), CancellationToken.None)
                                  .ContinueWith(t => _mapper.Map <IqOptionProfileResponseViewModel>(t.Result.ProfileResult));

                    requestViewModel.ProfileResponseViewModel = profile;
                    requestViewModel.IsPassed = true;
                    requestViewModel.ProfileResponseViewModel.Ssid        = loginObs.Ssid;
                    requestViewModel.ProfileResponseViewModel.SsidUpdated = DateTime.Now;

                    return(IqOptionProfile(requestViewModel));
                }

                throw new Exception(loginObs.Message);
            }

            catch (AggregateException arex) {
                _logger.LogWarning("GetToken Failed", arex.GetBaseException().Message);

                return(BadRequest(arex.GetBaseException().Message));
            }

            catch (Exception ex) {
                _logger.LogCritical(nameof(IqOptionProfile), ex);
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 10
0
 public IActionResult IqOptionProfile(IqOptionRequestViewModel model)
 {
     return(PartialView("IqOption/_IqOptionAccountViewPartial", model));
 }
Exemplo n.º 11
0
 public IActionResult AddIqOptionAccoutToUser(IqOptionRequestViewModel requestViewModel) => View("Index");