public void Animals_can_be_persisted_and_retrieved() { //Arrange var sutProvider = new DataProvider <Animal>(_config, Animal.ToDomainConverter); var columns = sutProvider.LoadAllColumns(); var sutPersister = new AnimalPersister(columns, _config); var animalRecord = TestData.Animals.Chihuahua; //Act ErrorMessage error; var persistResult = sutPersister.TryPersist(ref animalRecord, out error); //Assert Assert.IsTrue(persistResult); Assert.IsNull(error); //The new row id is assigned to ref of the object Assert.IsNotNull(animalRecord.AnimalId); Assert.IsInstanceOf <int>(animalRecord.AnimalId); var readResult = sutProvider.LoadAll().First(); Assert.AreEqual(TestData.Animals.Chihuahua, readResult); Assert.AreEqual(animalRecord.AnimalId, readResult.AnimalId); }
public GameDataRequestProcessor(AnimalPersister animalPersister, AnimalMetricPersister animalMetricPersister, MetricPersister metricPersister, MetricInteractionPersister metricInteractionPersister, InteractionPersister interactionPersister) { this._animalPersister = animalPersister; this._animalMetricPersister = animalMetricPersister; this._metricPersister = metricPersister; this._metricInteractionPersister = metricInteractionPersister; this._interactionPersister = interactionPersister; }
private bool PersistAnimal(out ErrorMessage error, ref Animal persistedAnimal) { var provider = new DataProvider <Animal>(_config, Animal.ToDomainConverter); var columns = provider.LoadAllColumns(); var persister = new AnimalPersister(columns, _config); return(persister.TryPersist(ref persistedAnimal, out error)); }
public static GameDataState Initialize(IConfiguration config, IRepository <Animal, AnimalMetric> animals, IRepository <Metric, MetricInteraction> metrics, IRepository <Interaction, MetricInteraction> interactions, ResponseBuilder responseBuilder) { //Persisters var animalPersister = new AnimalPersister(animals.ColumnInfo, config); var animalMetricPersister = new AnimalMetricPersister(animals.JoinTableColumnInfo, config); var metricPersister = new MetricPersister(metrics.ColumnInfo, config); var metricInteractionPersister = new MetricInteractionPersister(metrics.JoinTableColumnInfo, config); var interactionPersister = new InteractionPersister(interactions.ColumnInfo, config); //Validators - TODO var gameDataRequestValidator = new GameDataRequestValidator(); var requestProcessor = new GameDataRequestProcessor(animalPersister, animalMetricPersister, metricPersister, metricInteractionPersister, interactionPersister); return(new GameDataState(animals, metrics, interactions, requestProcessor, responseBuilder, gameDataRequestValidator)); }