public void use_matching_storage_to_build_the_repository() { var types = new SagaTypes { MessageType = GetType(), StateType = typeof(MySagaState) }; var storage1 = MockRepository.GenerateMock <ISagaStorage>(); var storage2 = MockRepository.GenerateMock <ISagaStorage>(); var storage3 = MockRepository.GenerateMock <ISagaStorage>(); var settings = new TransportSettings(); settings.SagaStorageProviders.Add(storage1); settings.SagaStorageProviders.Add(storage2); settings.SagaStorageProviders.Add(storage3); var def = new ObjectDef(); storage3.Stub(x => x.RepositoryFor(types)) .Return(def); StatefulSagaConvention.DetermineSagaRepositoryDef(settings, types) .ShouldBeTheSameAs(def); }
public void unable_to_determine_a_saga_repository_blows_up() { Exception <SagaRepositoryUnresolvableException> .ShouldBeThrownBy(() => { StatefulSagaConvention.DetermineSagaRepositoryDef(new TransportSettings(), new SagaTypes { MessageType = GetType(), StateType = GetType() }); }); }
public void no_registered_storage_and_matches_the_idiom_so_use_in_memory_cache() { var types = new SagaTypes { MessageType = typeof(SagaMessageOne), StateType = typeof(MySagaState) }; StatefulSagaConvention.DetermineSagaRepositoryDef(new TransportSettings(), types) .Type.ShouldEqual(typeof(InMemorySagaRepository <MySagaState, SagaMessageOne>)); }