public async Task CreateAsyncReturnsSuccessOnSuccess()
        {
            //Setup
            var request = new CreateHospitalRequest
            {
                Name    = "Name",
                Address = "Address"
            };

            _hospitalRepository
            .Setup(x => x.GetByName(It.IsAny <string>()))
            .Returns((Hospital)null);

            _hospitalRepository
            .Setup(x => x.Add(It.IsAny <Hospital>()))
            .Returns(new Hospital
            {
                Id      = Guid.NewGuid(),
                Name    = request.Name,
                Address = request.Address
            });

            var service = new HospitalDomainService(_dbContext.Object);

            // Execute
            var response = await service.CreateAsync(request);

            // Assert
            Assert.AreEqual(response.Result, CreateHospitalResult.Success);
            Assert.AreEqual(response.Entity.Name, request.Name);
            Assert.AreEqual(response.Entity.Address, request.Address);
            _hospitalRepository.Verify(x => x.Add(It.Is <Hospital>(h => h.Name.Equals(request.Name) && h.Address.Equals(request.Address))), Times.Once);
            _dbContext.Verify(x => x.SaveChangesAsync(), Times.Once);
        }
        public async Task CreateAsyncReturnsAlreadyExistsIfNameExists()
        {
            //Setup
            var request = new CreateHospitalRequest
            {
                Name    = "Name",
                Address = "Address"
            };

            _hospitalRepository
            .Setup(x => x.GetByName(It.IsAny <string>()))
            .Returns(new Hospital {
                Name = request.Name, Address = request.Address
            });

            var service = new HospitalDomainService(_dbContext.Object);

            // Execute
            var response = await service.CreateAsync(request);

            // Assert
            Assert.AreEqual(response.Result, CreateHospitalResult.AlreadyExists);
            Assert.IsNull(response.Entity);
            _hospitalRepository.Verify(x => x.Add(It.IsAny <Hospital>()), Times.Never);
            _dbContext.Verify(x => x.SaveChangesAsync(), Times.Never);
        }