示例#1
0
        public async Task RegistrateNewClient_400ClientHasAlreadyExists()
        {
            //Arrange
            var dbLayer   = new Mock <ICampaignService>();
            var newClient = new RegistrateNewClientRequest
            {
                FirstName = "John",
                LastName  = "Brayan",
                Email     = "*****@*****.**",
                Phone     = "455-777-777",
                Login     = "******",
                Password  = "******"
            };

            dbLayer.Setup(d => d.RegistrateClientAsync(newClient))
            .ThrowsAsync(new ClientHasAlreadyExistsException());

            var controller = new ClientController(dbLayer.Object);

            //Act
            var response = await controller.RegistrateClient(newClient);

            //Assert
            Assert.IsNotNull(response);
            Assert.IsTrue(response is ObjectResult);
            var vr = (ObjectResult)response;

            Assert.IsTrue(vr.StatusCode == 400);
        }
示例#2
0
        public async Task <IActionResult> RegistrateClient(RegistrateNewClientRequest newClientRequest)
        {
            var result = await _dbService.RegistrateClientAsync(newClientRequest);

            ObjectResult response = new ObjectResult(result)
            {
                StatusCode = 201
            };

            return(response);
        }
示例#3
0
        public async Task RegistrateNewClient_201CreatedCorrect()
        {
            //Arrange
            var dbLayer   = new Mock <ICampaignService>();
            var newClient = new RegistrateNewClientRequest
            {
                FirstName = "Kamil",
                LastName  = "Kowalski",
                Email     = "*****@*****.**",
                Phone     = "454-232-222",
                Login     = "******",
                Password  = "******"
            };

            dbLayer.Setup(d => d.RegistrateClientAsync(newClient))
            .ReturnsAsync(new RegistratedClientResponse
            {
                FirstName = "Kamil",
                LastName  = "Kowalski",
                Email     = "*****@*****.**",
                Phone     = "454-232-222",
                Login     = "******",
            });

            var controller = new ClientController(dbLayer.Object);

            //Act
            var response = await controller.RegistrateClient(newClient);

            //Assert
            Assert.IsNotNull(true);
            var result = response as CreatedAtActionResult;
            var vr     = (ObjectResult)response;

            Assert.IsNotNull(vr.Value);
            Assert.IsTrue(vr.Value is RegistratedClientResponse);
            var vm = (RegistratedClientResponse)vr.Value;

            Assert.IsTrue(vm.FirstName.Equals("Kamil"));
            Assert.IsTrue(vm.Login.Equals("Kamil123"));
        }
示例#4
0
        //==========Zadanie 4
        public async Task <RegistratedClientResponse> RegistrateClientAsync(RegistrateNewClientRequest newClient)
        {
            var isClientExists = await _dbcontext.Clients.AnyAsync(c => c.Login.Equals(newClient.Login));

            if (isClientExists)
            {
                throw new ClientHasAlreadyExistsException($"Client with login={newClient.Login} has already exists");
            }

            var salt   = PasswordHashingHandler.CreateSalt();
            var client = new Client
            {
                FirstName = newClient.FirstName,
                LastName  = newClient.LastName,
                Email     = newClient.Email,
                Phone     = newClient.Phone,
                Login     = newClient.Login,
                Password  = PasswordHashingHandler.CreateHash(newClient.Password, salt),
                Salt      = salt
            };

            await _dbcontext.AddAsync(client);

            await _dbcontext.SaveChangesAsync();

            var cl = await _dbcontext.Clients
                     .Where(c => c.Login.Equals(newClient.Login))
                     .SingleOrDefaultAsync();

            return(new RegistratedClientResponse
            {
                FirstName = cl.FirstName,
                LastName = cl.LastName,
                Email = cl.Email,
                Phone = cl.Phone,
                Login = cl.Login,
            });
        }