public void CUANDO_se_actualiza_resumen_de_animales_por_periodo_ENTONCES_se_proyecta() { var correlationId = SequentialGuid.GenerateNewGuid(); var e = new SeActualizoResumenDeAnimalesPorPeriodo { SourceType = "TestAggregate", CantidadDeAnimales = 5, CorrelationId = correlationId, Periodo = 2015, SourceId = Guid.Empty, Version = 1 }; this.sut.Handle(e); using (var context = this.contextFactory.Invoke()) { var resumen = context.ResumenDeAnimalesDeTodosLosPeriodos .Where(x => x.Periodo == e.Periodo.ToString()) .FirstOrDefault(); Assert.NotNull(resumen); Assert.Equal(e.CantidadDeAnimales, resumen.Cantidad); var log = context.ReadModelingEvents .Where(x => x.CorrelationId == correlationId) .FirstOrDefault(); Assert.NotNull(log); } }
public void CUANDO_se_aggregan_animales_al_inventario_ENTONCES_se_actualiza_el_resumen_del_periodo() { var idEmpresa = this.guid.NewGuid(); var animal = this.guid.NewGuid(); var sucursal = this.guid.NewGuid(); var hydratingEvent = new SeActualizoResumenDeAnimalesPorPeriodo { SourceId = idEmpresa, CantidadDeAnimales = 4, Periodo = 2015 }; var newEvent = new SeAgregaronAnimalesAlInventario { SourceId = idEmpresa, IdEmpresa = idEmpresa, Animal = animal, Sucursal = sucursal, Cantidad = 6, Periodo = 2015 }; this.sut.Given(hydratingEvent); this.sut.When(newEvent); var olapEvent = sut.ThenHasOne <SeActualizoResumenDeAnimalesPorPeriodo>(); Assert.Equal(2015, olapEvent.Periodo); Assert.Equal(10, olapEvent.CantidadDeAnimales); }
public void Rehydrate(SeActualizoResumenDeAnimalesPorPeriodo e) { this.ComprobarPeriodo(e.Periodo); this.animalesPorPeriodo[e.Periodo] = e.CantidadDeAnimales; }