Exemple #1
0
        public async Task <IActionResult> CreateShooter(ShooterCreateRequest request)
        {
            //Creazione modello richiesto da admin
            var model = new Shooter
            {
                FirstName                    = request.FirstName,
                LastName                     = request.LastName,
                BirthDate                    = request.BirthDate,
                Email                        = request.Email,
                Username                     = request.Username,
                FirearmsLicence              = request.FirearmsLicence,
                FirearmsLicenceExpireDate    = request.FirearmsLicenceExpireDate,
                FirearmsLicenceReleaseDate   = request.FirearmsLicenceReleaseDate,
                MedicalExaminationExpireDate = request.MedicalExaminationExpireDate,
                BirthLocation                = request.BirthLocation,
                Address                      = request.Address,
                City       = request.City,
                PostalCode = request.PostalCode,
                Province   = request.Province,
                Country    = request.Country,
                Phone      = request.Phone,
                FiscalCode = request.FiscalCode
            };

            //Invocazione del service layer
            var validations = await BasicLayer.CreateShooter(model, PlatformUtils.GetIdentityUserId(User));

            if (validations.Count > 0)
            {
                return(BadRequest(validations));
            }

            //Return contract
            return(Ok(ContractUtils.GenerateContract(model)));
        }
        public async Task ShouldCreateShooterBeOkAndNotCreatePermissions()
        {
            //Conteggio gli elementi prima della creazione
            var countBefore = Scenario.Permissions.Count;

            //Composizione della request
            var request = new ShooterCreateRequest
            {
                Email     = RandomizationUtils.GenerateRandomEmail(),
                LastName  = RandomizationUtils.GenerateRandomString(10),
                FirstName = RandomizationUtils.GenerateRandomString(10),
                BirthDate = DateTime.Now,
                Username  = RandomizationUtils.GenerateRandomString(10)
            };

            //Invoke del metodo
            var response = await Controller.CreateShooter(request);

            //Conteggio gli elementi dopo la creazione
            var countAfter = Scenario.Permissions.Count;

            //Parsing della risposta e assert
            var parsed = ParseExpectedOk <ShooterContract>(response);

            Assert.IsTrue(parsed != null);
            Assert.AreEqual(countBefore, countAfter);
        }
        public async Task ShouldCreateShooterBeBadRequestWithoutPermission()
        {
            UpdateIdentityUser(GetUserWithoutPermission(new List <Permissions> {
                Permissions.ManageShooters, Permissions.CreateShooters
            }));

            //Conteggio gli elementi prima della creazione
            var countBefore           = Scenario.Shooters.Count;
            var countBeforePermission = Scenario.Permissions.Count;

            //Composizione della request
            var request = new ShooterCreateRequest
            {
                Email     = RandomizationUtils.GenerateRandomEmail(),
                LastName  = RandomizationUtils.GenerateRandomString(10),
                FirstName = RandomizationUtils.GenerateRandomString(10),
                BirthDate = DateTime.Now,
                Username  = RandomizationUtils.GenerateRandomString(10)
            };

            //Invoke del metodo
            var response = await Controller.CreateShooter(request);

            //Conteggio gli elementi dopo la creazione
            var countAfter           = Scenario.Shooters.Count;
            var countAfterPermission = Scenario.Permissions.Count;

            //Parsing della risposta e assert
            var parsed = ParseExpectedBadRequest(response);

            Assert.IsTrue(parsed != null);
            Assert.AreEqual(countBefore, countAfter);
            // because is made by an admin the permissions should be the same
            Assert.AreEqual(countBeforePermission, countAfterPermission);
        }
        public async Task ShouldCreateShooterBeOkHavingProvidedData()
        {
            //Conteggio gli elementi prima della creazione
            var countBefore = Scenario.Shooters.Count;

            //Composizione della request
            var request = new ShooterCreateRequest
            {
                Email                     = RandomizationUtils.GenerateRandomEmail(),
                LastName                  = RandomizationUtils.GenerateRandomString(10),
                FirstName                 = RandomizationUtils.GenerateRandomString(10),
                BirthDate                 = DateTime.Now,
                Username                  = RandomizationUtils.GenerateRandomString(10),
                FirearmsLicence           = RandomizationUtils.GenerateRandomString(10),
                FirearmsLicenceExpireDate = DateTime.Now
            };

            //Invoke del metodo
            var response = await Controller.CreateShooter(request);

            //Conteggio gli elementi dopo la creazione
            var countAfter = Scenario.Shooters.Count;

            //Parsing della risposta e assert
            var parsed = ParseExpectedOk <ShooterContract>(response);

            Assert.IsTrue(parsed != null &&
                          countAfter == countBefore + 1 &&
                          parsed.Data.Email == request.Email &&
                          parsed.Data.LastName == request.LastName &&
                          parsed.Data.FirstName == request.FirstName &&
                          parsed.Data.BirthDate == request.BirthDate &&
                          parsed.Data.Username == request.Username &&
                          parsed.Data.FirearmsLicence == request.FirearmsLicence &&
                          parsed.Data.FirearmsLicenceExpireDate == request.FirearmsLicenceExpireDate
                          );
        }