public AddPetResponse AddPet(AddPetRequest request) { var response = new AddPetResponse(); var breed = _context.BreedType.FirstOrDefault(b => b.Name == request.BreedName); if (breed == null) { var breed_type = new BreedType() { IdBreedType = _context.Pet.Max(p => p.IdBreedType) + 1, Name = request.BreedName }; _context.BreedType.Add(breed_type); } var pet = new Pet() { IdPet = _context.Pet.Max(p => p.IdPet) + 1, Name = request.Name, IsMale = request.IsMale, DateRegistered = request.DateRegistered, ApproximateDateOfBirth = request.ApproximatedDateOfBirth }; _context.Pet.Add(pet); response.BreedName = request.BreedName; response.Name = pet.Name; response.IsMale = pet.IsMale; response.DateRegistered = pet.DateRegistered; response.ApproximatedDateOfBirth = pet.ApproximateDateOfBirth; _context.SaveChanges(); return(response); }
public async Task ShouldAdd_A_Pet() { string name = "Vader"; var clientId = Guid.NewGuid(); var request = new AddPetCommand { Name = name, ClientId = clientId }; var expected = new AddPetResponse { Id = new Guid("994aa42a-e292-42f1-b5d4-749cd19a4d29"), Name = name, ClientId = clientId }; var mapper = PetShopMappingConfiguration.GetPetShopMappings(); var mockRepository = new Mock <IPetRepository>(); mockRepository.Setup(p => p.Add(It.Is <Pet>(c => c.Name == name))) .Returns((Pet pet) => Task.Run(() => { pet.Id = new Guid("994aa42a-e292-42f1-b5d4-749cd19a4d29"); })); var handler = new AddPetCommandHandler(mapper, mockRepository.Object); var result = await handler.Handle(request, CancellationToken.None); result.Data.Should().BeEquivalentTo(expected); result.Message.Should().BeEquivalentTo("Pet Added"); mockRepository.Verify(m => m.Add(It.IsAny <Pet>()), Times.Once()); }