public void Given_a_corresponding_Animal_Pets_can_be_persisted_and_retrieved() { //Arrange var sutProvider = new DataProvider <Pet>(_config, Pet.ToDomainConverter); var columns = sutProvider.LoadAllColumns(); var sutPersister = new PetPersister(columns, _config); var animalRecord = TestData.Animals.Chihuahua; ErrorMessage error; if (!PersistAnimal(out error, ref animalRecord)) { Assert.Fail(error.Message); } var petRecord = new Pet(animalRecord.AnimalId, "Princess"); var persistResult = sutPersister.TryPersist(ref petRecord, out error); //Assert Assert.IsTrue(persistResult); Assert.IsNull(error); Assert.IsNotNull(petRecord.PetId); Assert.IsInstanceOf <int>(petRecord.PetId); var readResult = sutProvider.LoadAll().First(); Assert.AreEqual(petRecord, readResult); Assert.AreEqual(petRecord.PetId, readResult.PetId); }
private bool PersistPet(out ErrorMessage error, ref Pet pet) { var provider = new DataProvider <Pet>(_config, Pet.ToDomainConverter); var columns = provider.LoadAllColumns(); var persister = new PetPersister(columns, _config); return(persister.TryPersist(ref pet, out error)); }