public void unable_to_determine_a_saga_repository_blows_up() { Exception<SagaRepositoryUnresolvableException>.ShouldBeThrownBy(() => { StatefulSagaConvention.DetermineSagaRepositoryInstance(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.DetermineSagaRepositoryInstance(new TransportSettings(), types) .ReturnedType.ShouldBe(typeof (InMemorySagaRepository<MySagaState, SagaMessageOne>)); }
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 ConfiguredInstance(GetType()); storage3.Stub(x => x.RepositoryFor(types)) .Return(def); StatefulSagaConvention.DetermineSagaRepositoryInstance(settings, types) .ShouldBeTheSameAs(def); }