Beispiel #1
0
        public void CreatePetCommand_Execute_Should_Call_UserMethod_AddPet()
        {
            // Arrange
            var petFactory = new Mock <IPetFactory>();
            var users      = new Mock <IUserRepository>();
            var pets       = new Mock <IPetRepository>();
            var writer     = new Mock <IWriter>();

            var pet      = new Mock <IPet>();
            var user     = new Mock <IUser>();
            var dataBase = new List <IPet>();

            user.SetupGet(m => m.PhoneNumber).Returns("123456");
            user.SetupGet(m => m.Pets).Returns(new List <IPet>());
            petFactory.Setup(m => m.CreateCat("Kitty", AnimalGenderType.female, 2)).Returns(pet.Object);
            users.SetupGet(m => m.Users).Returns(new List <IUser>()
            {
                user.Object
            });
            pets.SetupGet(m => m.Pets).Returns(new List <IPet>());

            var createPetCommand = new CreatePetCommand
                                       (petFactory.Object, users.Object, pets.Object, writer.Object);

            createPetCommand.Parameters = new List <string> {
                "createpet", "123456", "cat", "Kitty", "female", "2"
            };

            // Act
            createPetCommand.Execute();

            // Assert
            user.Verify(m => m.AddPet(pet.Object), Times.Once);
        }
Beispiel #2
0
        public IActionResult CreatePetForOwner([FromBody] CreatePetForOwnerModel pet)
        {
            var animal = _animalRepository.GetById(pet.AnimalId);

            if (animal == null)
            {
                return(BadRequest());
            }

            var newPetId = Guid.NewGuid();
            var cmd      = new CreatePetCommand
            {
                NewPetId       = newPetId,
                OwnerId        = _ownerId,
                AnimalId       = pet.AnimalId,
                PetDescription = pet.Description,
                PetName        = pet.Name,
            };

            _messaging.Send(cmd);

            object routeParams = new
            {
                id = newPetId
            };

            return(AcceptedAtRoute("GetPetForOwner", routeParams, cmd));
        }
Beispiel #3
0
        public void CreatePetCommand_Execute_Should_Throw_ArgumentNullException_When_User_Not_Found()
        {
            // Arrange
            var petFactory = new Mock <IPetFactory>();
            var users      = new Mock <IUserRepository>();
            var pets       = new Mock <IPetRepository>();
            var writer     = new Mock <IWriter>();

            var pet  = new Mock <IPet>();
            var user = new Mock <IUser>();

            user.SetupGet(m => m.PhoneNumber).Returns("123456");

            users.SetupGet(m => m.Users).Returns(new List <IUser>());

            var createPetCommand = new CreatePetCommand
                                       (petFactory.Object, users.Object, pets.Object, writer.Object);

            createPetCommand.Parameters = new List <string> {
                "createpet", "123456", "cat", "Kitty", "female", "2"
            };

            // Act & Assert
            Assert.ThrowsException <ArgumentNullException>(() => createPetCommand.Execute());
        }
Beispiel #4
0
        public void CreatePetCommand_Constructor_Should_Throw_ArgumentNullException_When_PetRepo_Is_Null()
        {
            // Arrange
            var petFactory = new Mock <IPetFactory>();
            var users      = new Mock <IUserRepository>();
            var writer     = new Mock <IWriter>();

            ICommand createPetCommand;

            // Act & Assert
            Assert.ThrowsException <ArgumentNullException>(() => createPetCommand = new CreatePetCommand
                                                                                        (petFactory.Object, users.Object, null, writer.Object));
        }
Beispiel #5
0
        public void CreatePetCommand_Constructor_Should_CreateInstance_Of_Type_ICommand()
        {
            // Arrange
            var petFactory = new Mock <IPetFactory>();
            var users      = new Mock <IUserRepository>();
            var pets       = new Mock <IPetRepository>();
            var writer     = new Mock <IWriter>();

            // Act
            var createPetCommand = new CreatePetCommand
                                       (petFactory.Object, users.Object, pets.Object, writer.Object);

            // Assert
            Assert.IsInstanceOfType(createPetCommand, typeof(ICommand));
        }
Beispiel #6
0
        public async Task <ActionResult> Create([FromBody] CreatePetCommand command)
        {
            try
            {
                await Mediator.Send(command);

                return(Ok());
            }
            catch (UnauthorizedException ex)
            {
                return(Unauthorized(ex.Message));
            }
            catch (NotFoundException ex)
            {
                return(NotFound(ex.Message));
            }
        }
Beispiel #7
0
        public async Task <bool> Handle(CreatePetCommand command)
        {
            return(await Task.Run(() =>
            {
                if (string.IsNullOrEmpty(command?.Name) || command.Name.Length < 3)
                {
                    return false;
                }
                if (string.IsNullOrEmpty(command?.OwnerName) || command.OwnerName.Length < 3)
                {
                    return false;
                }
                if (string.IsNullOrEmpty(command.Type) || command.Type.Length < 3)
                {
                    return false;
                }

                return true;
            }));
        }
Beispiel #8
0
 static void Main(string[] args)
 {
     for (int i = 0; i < 150; i++)
     {
         CreatePetCommand cmd = new CreatePetCommand()
         {
             IsFound      = r.Next(0, 2) == 0,
             LPUserId     = "1",
             Colors       = "barna;fekete;piros",
             Gender       = (Domain.Entities.PetGender)r.Next(0, 3),
             Latitude     = (double)r.Next(47000, 48000) / (double)1000,
             Longitude    = (double)r.Next(19000, 20000) / (double)1000,
             ReportedAt   = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
             Description  = "aranyos, kedves, szép",
             ContactTypes = "1;2"
         };
         string json = JsonConvert.SerializeObject(cmd);
         client.PostAsync(url, new StringContent(json, Encoding.UTF8, "application/json"));
         Thread.Sleep(250);
     }
 }
        public async Task GivenValidData_ReturnOkStatusCode()
        {
            var client = await _factory.GetAuthenticatedClientAsync();

            var command = new CreatePetCommand
            {
                Name         = "Wau",
                Age          = 5,
                Gender       = Domain.Enums.Gender.Male,
                Weight       = null,
                Height       = null,
                IsSterilized = true,
                Description  = "Something about",
                PhotoCode    = "",
                CategoryId   = 1,
                UserId       = 1
            };

            var content = ClientUtilities.GetRequestContent(command);

            var response = await client.PostAsync("/api/pets", content);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }
Beispiel #10
0
        public async Task <IHttpActionResult> Put([FromBody] CreatePetCommand create)
        {
            var commandResult = await CreateHandler.Handle(create);

            return(commandResult ? (IHttpActionResult)Ok() : BadRequest());
        }
Beispiel #11
0
        public async Task <ActionResult <string> > Create([FromBody] CreatePetCommand command)
        {
            string petId = await Mediator.Send(command);

            return(Ok(petId));
        }
Beispiel #12
0
        public async void Pet_Trying_Put_Invalid_Pet(CreatePetCommand pet)
        {
            var result = await Controller.Put(pet);

            result.Should().BeOfType <BadRequestResult>();
        }
Beispiel #13
0
        public async void Pet_Put_Valid_Pet(CreatePetCommand pet)
        {
            var result = await Controller.Put(pet);

            result.Should().BeOfType <OkResult>();
        }