public void Given_an_existing_Metric_and_Interaction_MetricInteractions_can_be_persisted_and_retrieved() { //Arrange var sutProvider = new DataProvider <MetricInteraction>(_config, MetricInteraction.ToDomainConverter); var columns = sutProvider.LoadAllColumns(); var sutPersister = new MetricInteractionPersister(columns, _config); var metric = TestData.AnimalMetrics.Confidence; var interaction = TestData.Interactions.TakeSelfieWithPet; ErrorMessage error; if (!PersistMetric(out error, ref metric)) { Assert.Fail(error.Message); } if (!PersistInteraction(out error, ref interaction)) { Assert.Fail(error.Message); } //Act var metricInteraction = new MetricInteraction(metric.MetricId, interaction.InteractionId); var persistResult = sutPersister.TryPersist(ref metricInteraction, out error); //Assert Assert.IsTrue(persistResult); Assert.IsNull(error); var readResult = sutProvider.LoadAll().First(); Assert.AreEqual(metricInteraction, readResult); }
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; }
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)); }