private static void ConfigureNijn(IServiceCollection services) { ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddProvider( new ConsoleLoggerProvider( (text, logLevel) => logLevel >= LogLevel.Debug, true)); var connectionBuilder = new RabbitMQContextBuilder() .ReadFromEnvironmentVariables(); var nijnContext = connectionBuilder.CreateContext(); services.AddTransient <ICommandPublisher, CommandPublisher>(); services.AddTransient <IEventPublisher, EventPublisher>(); var builder = new MicroserviceHostBuilder() .SetLoggerFactory(loggerFactory) .RegisterDependencies(services) .WithContext(nijnContext) .UseConventions(); var host = builder.CreateHost(); host.CreateQueues(); host.StartListeningInOtherThread(); var logger = NijnLogger.CreateLogger <Program>(); logger.LogInformation("Started..."); }
private static IHostBuilder CreateHostBuilder(string[] args) { var connectionFactory = new ConnectionFactory(); var contextBuilder = new RabbitMQContextBuilder(connectionFactory) .ReadFromEnvironmentVariables(); IBusContext <IConnection> busContext = contextBuilder.CreateContext(); return(Host.CreateDefaultBuilder(args) .ConfigureMessageBusWrapperHostDefaults(builder => { var types = Assembly.GetEntryAssembly().GetTypes(); }, busContext) .ConfigureServices((hostContext, services) => { services.AddDbContext <PrestatieContext>(e => { e.UseSqlServer(Environment.GetEnvironmentVariable(EnvNames.DbConnectionString)); // e.UseLoggerFactory(loggerFactory); }); services.AddTransient <IPrestatieRepository, PrestatieRepository>(); using var serviceScope = services.BuildServiceProvider().GetRequiredService <IServiceScopeFactory>() .CreateScope(); var dbContext = serviceScope.ServiceProvider.GetService <PrestatieContext>(); dbContext.Database.Migrate(); })); }
private IBusContext <IConnection> CreateNijnConfig(IServiceCollection serviceCollection) { //Deprecated method, maar kan even niet anders ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddProvider( new ConsoleLoggerProvider( (text, logLevel) => logLevel >= LogLevel.Debug, true)); var connectionBuilder = new RabbitMQContextBuilder() .ReadFromEnvironmentVariables(); _context = connectionBuilder.CreateContext(); var builder = new MicroserviceHostBuilder() .SetLoggerFactory(loggerFactory) .RegisterDependencies(serviceCollection) .WithContext(_context) .UseConventions(); var host = builder.CreateHost(); host.StartListeningInOtherThread(); return(_context); }
public void CreateContext_DeclaresExchangeWithCorrectExchangeName() { // Arrange var channelMock = new Mock <IModel>(); channelMock.Setup(c => c.ExchangeDeclare("Exchange3", "topic", false, false, null)) .Verifiable(); var connectionMock = new Mock <IConnection>(MockBehavior.Strict); connectionMock.Setup(c => c.CreateModel()) .Returns(channelMock.Object); var connectionFactoryMock = new Mock <IConnectionFactory>(MockBehavior.Strict); connectionFactoryMock.Setup(f => f.CreateConnection()) .Returns(connectionMock.Object); var contextBuilder = new RabbitMQContextBuilder().WithExchange("Exchange3") .WithAddress("localhost", 5672); // Act var context = contextBuilder.CreateContext(connectionFactoryMock.Object); // Assert channelMock.VerifyAll(); }
public static async Task ScrapeAuditLog(IBusContext <IConnection> mainContext, ServiceCollection collection, DateTime startTime) { var exchangeName = "Audit_Bestelling " + Guid.NewGuid(); var connectionBuilder = new RabbitMQContextBuilder() .ReadFromEnvironmentVariables().WithExchange(exchangeName); var builder = new MicroserviceHostBuilder(); builder .RegisterDependencies(collection) .WithContext(connectionBuilder.CreateContext()) .ExitAfterIdleTime(new TimeSpan(0, 0, 2, 0)) .UseConventions(); builder.CreateHost().StartListeningInOtherThread(); var publisher = new CommandPublisher(mainContext); var replayEventsCommand = new ReplayEventsCommand { ToTimestamp = startTime.Ticks, ExchangeName = exchangeName }; var result = await publisher.Publish <bool>(replayEventsCommand, "AuditlogReplayService", "Minor.WSA.AuditLog.Commands.ReplayEventsCommand"); }
private static IHostBuilder CreateHostBuilder(string[] args) { var connectionFactory = new ConnectionFactory(); var contextBuilder = new RabbitMQContextBuilder(connectionFactory) .ReadFromEnvironmentVariables(); IBusContext <IConnection> busContext = contextBuilder.CreateContext(); return(Host.CreateDefaultBuilder(args) .ConfigureMessageBusWrapperHostDefaults(builder => { }, busContext) // .ConfigureMessageBusWrapperClientDefaults(builder => { }, busContext) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); }) .ConfigureServices(services => { services.AddDbContext <BFFContext>(e => { e.UseSqlServer(Environment.GetEnvironmentVariable(EnvNames.DbConnectionString)); }); services.AddTransient <IKlantRepository, KlantRepository>(); services.AddTransient <IOefeningRepository, OefeningRepository>(); services.AddTransient <IPrestatieRepository, PrestatieRepository>(); services.AddTransient <IWorkoutRepository, WorkoutRepository>(); // You need to comment this when adding a migration using var serviceScope = services.BuildServiceProvider().GetRequiredService <IServiceScopeFactory>() .CreateScope(); using var dbContext = serviceScope.ServiceProvider.GetService <BFFContext>(); dbContext.Database.Migrate(); // You need to comment this when adding a migration })); }
public void TestInitialize() { var contextBuilder = new RabbitMQContextBuilder(); _context = contextBuilder.WithCredentials("guest", "guest") .WithAddress(_hostname, 5672) .WithExchange("TestExchange1") .CreateContext(); }
private static void Main(string[] args) { var connectionString = Environment.GetEnvironmentVariable("SPRINTERDB"); var options = new DbContextOptionsBuilder <BeheerContext>() .UseNpgsql(connectionString) .Options; ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddProvider( new ConsoleLoggerProvider( (text, logLevel) => logLevel >= LogLevel.Debug, true)); var connectionBuilder = new RabbitMQContextBuilder() .ReadFromEnvironmentVariables(); var nijnContext = connectionBuilder.CreateContext(); var services = new ServiceCollection(); services.AddTransient <ICommandPublisher, CommandPublisher>(); services.AddTransient <IEventPublisher, EventPublisher>(); services.AddSingleton <DbContextOptions>(options); services.AddTransient <BeheerContext, BeheerContext>(); services.AddTransient <IArtikelDatamapper, ArtikelDatamapper>(); services.AddTransient <IBestellingDatamapper, BestellingDatamapper>(); services.AddSingleton <IBusContext <IConnection> >(nijnContext); services.AddTransient <IKlantDatamapper, KlantDatamapper>(); var builder = new MicroserviceHostBuilder() .SetLoggerFactory(loggerFactory) .RegisterDependencies(services) .WithContext(nijnContext) .UseConventions(); var host = builder.CreateHost(); host.CreateQueues(); using (var context = new BeheerContext(options)) { context.Database.EnsureDeleted(); context.Database.EnsureCreated(); if (!context.Artikelen.Any()) { ScrapeAuditLog(nijnContext, services, DateTime.Now).Wait(); } } host.StartListeningInOtherThread(); var logger = NijnLogger.CreateLogger <Program>(); logger.LogInformation("Started..."); }
public void WithExchange_WithCorrectExchangeName() { // Arrange var contextBuilder = new RabbitMQContextBuilder(); // Act contextBuilder.WithExchange("AMX"); // Assert Assert.AreEqual("AMX", contextBuilder.ExchangeName); }
static void Main(string[] args) { ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddProvider( new ConsoleLoggerProvider( (text, logLevel) => logLevel >= LogLevel.Debug, true)); //192.168.99.100 var connectionBuilder = new RabbitMQContextBuilder() .WithExchange("MVM.EventExchange") .WithAddress("192.168.99.100", 5672) .WithCredentials(userName: "******", password: "******"); using (var context = connectionBuilder.CreateContext()) { var builder = new MicroserviceHostBuilder() .SetLoggerFactory(loggerFactory) .RegisterDependencies((services) => { services.AddTransient <IDataMapper, SinaasAppelDataMapper>(); }) .WithContext(context) .UseConventions(); using (var host = builder.CreateHost()) { host.StartListening(); Console.WriteLine("ServiceHost is listening to incoming events..."); Console.WriteLine("Press any key to quit."); var publisher = new EventPublisher(context); publisher.Publish(new PolisToegevoegdEvent("MVM.Polisbeheer.PolisToegevoegd") { Message = "Hey" }); publisher.Publish(new HenkToegevoegdEvent("Test") { Test = "Oi" }); int i = 0; while (true) { Console.ReadKey(); Test(context, i); Test(context, i * 100); i++; } } } }
public void CreateContext_WithExchangeNameNull_ThrowsArgumentNullException() { // Arrange var contextBuilder = new RabbitMQContextBuilder().WithAddress(null, 5672); // Act & Assert Assert.ThrowsException <ArgumentNullException>(() => { contextBuilder.CreateContext(); }); }
public void WithAddress_WithCorrectHostnameAndPort() { // Arrange var contextBuilder = new RabbitMQContextBuilder(); // Act contextBuilder.WithAddress("localhost", 9000); // Assert Assert.AreEqual("localhost", contextBuilder.HostName); Assert.AreEqual(9000, contextBuilder.Port); }
static void Main(string[] args) { ILoggerFactory loggerFactory = new LoggerFactory(); //Deprecated method, maar kan even niet anders ConsoleLoggerOptions options = new ConsoleLoggerOptions(); loggerFactory.AddProvider( new ConsoleLoggerProvider( (text, logLevel) => logLevel >= LogLevel.Debug, true)); //192.168.99.100 var connectionBuilder = new RabbitMQContextBuilder() .WithExchange("MVM.EventExchange") .WithAddress("localhost", 5672) .WithCredentials(userName: "******", password: "******"); var context = new TestBusContext(); var builder = new MicroserviceHostBuilder() .SetLoggerFactory(loggerFactory) .RegisterDependencies((services) => { services.AddTransient <IDataMapper, SinaasAppelDataMapper>(); services.AddTransient <ICommandPublisher, CommandPublisher>(); services.AddTransient <IEventPublisher, EventPublisher>(); services.AddSingleton <IBusContext <IConnection> >(context); }) .WithContext(context) .UseConventions(); var host = builder.CreateHost(); host.StartListeningInOtherThread(); Console.WriteLine("ServiceHost is listening to incoming events..."); Console.WriteLine("Press any key to quit."); var publisher = new EventPublisher(context); var commandpublisher = new CommandPublisher(context); publisher.Publish(new PolisToegevoegdEvent("MVM.Polisbeheer.PolisToegevoegd") { Message = "Hey" }); publisher.Publish(new HenkToegevoegdEvent("Test") { Test = "Oi" }); }
public void CreateContext_WithPortHigherThan65535_ThrowsArgumentOutOfRangeException() { // Arrange var contextBuilder = new RabbitMQContextBuilder().WithAddress("localhost", 65536); // Act & Assert var exception = Assert.ThrowsException <ArgumentOutOfRangeException>(() => { contextBuilder.CreateContext(); }); Assert.AreEqual(nameof(contextBuilder.Port), exception.ParamName); }
public void CreateContext_WithExchangeNameEmptyString_ThrowsArgumentException() { // Arrange var contextBuilder = new RabbitMQContextBuilder().WithAddress("", 5672); // Act & Assert var exception = Assert.ThrowsException <ArgumentException>(() => { contextBuilder.CreateContext(); }); Assert.AreEqual(nameof(contextBuilder.HostName) + " was empty", exception.Message); }
public void WithCredentials_WithCorrectUsernameAndPassword() { // Arrange var contextBuilder = new RabbitMQContextBuilder(); // Act contextBuilder.WithCredentials("username", "password"); // Assert Assert.AreEqual("username", contextBuilder.UserName); string password = TestHelper.GetPrivateField <string>(contextBuilder, "_password"); Assert.AreEqual("password", password); }
private void ConfigureReplayEvents(IServiceCollection services) { var contextBuilder = new RabbitMQContextBuilder() .SetLoggerFactory(_loggerFactory) .WithConnectionTimeout(5000) .ReadFromEnvironmentVariables() .WithExchange(NameConstants.BffWebshopEventReplayExchange); using (var context = contextBuilder.CreateContext()) using (var replayService = new EventReplayService(context, services, 5000)) { replayService.StartEventReplay(); } }
private static IHostBuilder CreateHostBuilder(string[] args) { var connectionFactory = new ConnectionFactory(); var contextBuilder = new RabbitMQContextBuilder(connectionFactory) .ReadFromEnvironmentVariables(); IBusContext<IConnection> busContext = contextBuilder.CreateContext(); return Host.CreateDefaultBuilder(args) .ConfigureMessageBusWrapperClientDefaults(builder => { }, busContext) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); webBuilder.UseSerilog(); }); }
public void ReadFromEnvironmentVariables_WithCorrectPort() { // Arrange var contextBuilder = new RabbitMQContextBuilder(); Environment.SetEnvironmentVariable("Port", "9000"); // Act contextBuilder.ReadFromEnvironmentVariables(); // Assert Assert.AreEqual(9000, contextBuilder.Port); // Cleanup Environment.SetEnvironmentVariable("Port", null); }
public void ContextBuilderReadFromEnvironmentWithWrongPortThrowsException() { // Arrange Environment.SetEnvironmentVariable("EXCHANGENAME", "bus"); Environment.SetEnvironmentVariable("USERNAME", "guest"); Environment.SetEnvironmentVariable("HOSTNAME", "localhost"); Environment.SetEnvironmentVariable("PASSWORD", "secret"); Environment.SetEnvironmentVariable("PORT", "fout"); var contextBuilder = new RabbitMQContextBuilder(); // Act & Assert Assert.ThrowsException <InvalidCastException>(() => { contextBuilder.ReadFromEnvironmentVariables(); }); }
public void ReadFromEnvironmentVariables_WithCorrectExchangeName() { // Arrange var contextBuilder = new RabbitMQContextBuilder(); Environment.SetEnvironmentVariable("ExchangeName", "AMX"); // Act contextBuilder.ReadFromEnvironmentVariables(); // Assert Assert.AreEqual("AMX", contextBuilder.ExchangeName); // Cleanup Environment.SetEnvironmentVariable("ExchangeName", null); }
public void ReadFromEnvironmentVariables_WithCorrectHostName() { // Arrange var contextBuilder = new RabbitMQContextBuilder(); Environment.SetEnvironmentVariable("HostName", "localhost"); // Act contextBuilder.ReadFromEnvironmentVariables(); // Assert Assert.AreEqual("localhost", contextBuilder.HostName); // Cleanup Environment.SetEnvironmentVariable("HostName", null); }
private void StartEventReplay() { var timeout = 5000; var connectionBuilder = new RabbitMQContextBuilder() .SetLoggerFactory(_loggerFactory) .WithConnectionTimeout(timeout) .ReadFromEnvironmentVariables() .WithExchange(NameConstants.BestelServiceEventReplayExchange); using (var context = connectionBuilder.CreateContext()) using (var replayService = new EventReplayService(context, _services, timeout)) { replayService.StartEventReplay(); } }
public void ReadFromEnvironmentVariables_WithCorrectPassword() { // Arrange var contextBuilder = new RabbitMQContextBuilder(); Environment.SetEnvironmentVariable("Password", "secret"); // Act contextBuilder.ReadFromEnvironmentVariables(); // Assert string password = TestHelper.GetPrivateField <string>(contextBuilder, "_password"); Assert.AreEqual("secret", password); // Cleanup Environment.SetEnvironmentVariable("Password", null); }
public void CreateContext_ReturnsContextWithCorrectConnection() { // Arrange var channelMock = new Mock <IModel>(); var connectionMock = new Mock <IConnection>(MockBehavior.Strict); connectionMock.Setup(c => c.CreateModel()) .Returns(channelMock.Object); var connectionFactoryMock = new Mock <IConnectionFactory>(MockBehavior.Strict); connectionFactoryMock.Setup(f => f.CreateConnection()) .Returns(connectionMock.Object); var contextBuilder = new RabbitMQContextBuilder().WithExchange("Exchange3") .WithAddress("localhost", 5672); // Act var context = contextBuilder.CreateContext(connectionFactoryMock.Object); // Assert Assert.AreEqual(connectionMock.Object, context.Connection); }
public MyRabbitMQContext(RabbitMQContextBuilder builder) : base(builder) { }