コード例 #1
0
ファイル: PetServiceDb.cs プロジェクト: mruzova/APBD
        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);
        }
コード例 #2
0
        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());
        }