public void Should_resolve_nested_generics() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType("MyParentGeneric<Int32, bool>+MyNestedGeneric<string>", new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MyParentGeneric <Int32, bool> .MyNestedGeneric <string>)); }
public void Should_resolve_array_type_by_name() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType("MySecondEvent[]", new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MySecondEvent[])); }
public void Should_resolve_type_id_by_attribute() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageTypeId = sut.GetTypeId(typeof(MyEvent)); //Assert messageTypeId.Should().Be("TestMessageType"); }
public void Should_handle_nested_type() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType(sut.GetTypeId(typeof(MySecondEvent.MyNestedClass)), new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MySecondEvent.MyNestedClass)); }
public void Should_resolve_nestedType_as_generic_param_type_id_by_name() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageTypeId = sut.GetTypeId(typeof(MyGenericType <MySecondEvent.MyNestedClass>)); //Assert messageTypeId.Should().Be("MyGenericType<MySecondEvent+MyNestedClass>"); }
public void Should_resolve_nestedType_as_generic_param_type_by_name() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType("MyGenericType<MySecondEvent+MyNestedClass>", new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MyGenericType <MySecondEvent.MyNestedClass>)); }
public void Should_resolve_type_id_by_name() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageTypeId = sut.GetTypeId(typeof(MySecondEvent)); //Assert messageTypeId.Should().Be("MySecondEvent"); }
public void Should_resolve_generic_type_id_by_name() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageTypeId = sut.GetTypeId(typeof(MyGenericType <string>)); //Assert messageTypeId.Should().Be("MyGenericType<String>"); }
public void Should_handle_multi_dimensional_array() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType(sut.GetTypeId(typeof(MySecondEvent[][, ])), new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MySecondEvent[][, ])); }
public void Should_handle_compound_generic_array() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType(sut.GetTypeId(typeof(MyGenericType <MySecondEvent> [, ])), new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MyGenericType <MySecondEvent> [, ])); }
public void Should_resolve_compound_generic_type_by_name() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType("MyGenericType<string, MyGenericType<MySecondEvent>>", new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MyGenericType <string, MyGenericType <MySecondEvent> >)); }
public void Should_handle_generic_type() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType(sut.GetTypeId(typeof(MyGenericType <string>)), new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MyGenericType <string>)); }
public void Should_resolve_type_by_attribute() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act var messageType = sut.ResolveType("TestMessageType", new[] { Assembly.GetExecutingAssembly() }); //Assert messageType.Should().Be(typeof(MyEvent)); }
private static ContractCommandHandlers GetCommandHandler() { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); var environment = Environment.GetEnvironmentVariable("NETCORE_ENVIRONMENT"); var isDevelopment = string.Equals(environment, "development", StringComparison.OrdinalIgnoreCase); if (isDevelopment) { configurationBuilder.AddUserSecrets(Assembly.GetCallingAssembly()); } var configuration = configurationBuilder.Build(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .Enrich.With <CorrelationLogEventEnricher>() .WriteTo.MSSqlServer(configuration.GetConnectionString("Logs"), "Logs", autoCreateSqlTable: true) .CreateLogger(); var loggerFactory = new LoggerFactory(); loggerFactory.AddSerilog(); var stanConnectionProvider = new StanConnectionProvider(configuration, new Logger <StanConnectionProvider>(loggerFactory), null); var topicRegistry = new DefaultTopicRegistry(configuration); var messageTypeRegistry = new DefaultMessageTypeRegistry(); var messageSerdes = new NewtonsoftJsonMessageSerDes(messageTypeRegistry); var messagingTopicPublisher = new NatsMessagingTopicPublisher(stanConnectionProvider, new Logger <NatsMessagingTopicPublisher>(loggerFactory)); var messageBusPublisher = new MessageBusPublisher(messagingTopicPublisher, topicRegistry, messageSerdes, configuration); var scripts = new Scripts(); var eventRepository = new AdoNetEventRepository(scripts, new Logger <AdoNetEventRepository>(loggerFactory), new Options()); var eventStoreSerDes = new NewtonsoftJsonEventStoreSerDes(); var eventStore = new EventStore.EventStore(eventRepository, eventStoreSerDes, new Logger <EventStore.EventStore>(loggerFactory)); var eventStoreDecorator = new MessagingEventStoreDecorator(eventStore, messageBusPublisher, new MessagingTopicResolver(new Options())); var mediator = new OpenFaaSMediator(configuration, new Logger <OpenFaaSMediator>(loggerFactory)); var repository = new EventSourcedRepository <Contract>(eventStoreDecorator, null, mediator, new EventSourcingOptions(), new Logger <EventSourcedRepository <Contract> >(loggerFactory)); var result = new ContractCommandHandlers(repository); //disposables = new List<IDisposable>{stanConnectionProvider}; return(result); }
public void Should_fail_resolve_when_multiple_types_by_name() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act void Action() { sut.ResolveType("SameName", new[] { Assembly.GetExecutingAssembly() }); } //Assert ((Action)Action).Should().Throw <ApplicationException>().WithMessage("*multiple*"); }
public void Should_fail_resolve_when_type_not_found() { //Arrange var sut = new DefaultMessageTypeRegistry(); //Act void Action() { sut.ResolveType("MyNotFoundEvent", new[] { Assembly.GetExecutingAssembly() }); } //Assert ((Action)Action).Should().Throw <ApplicationException>().WithMessage("*could not be resolved*"); }