public async Task TransportTestSetUp() { Harness = await _harnessFactory.CreateTestHarness(); if (_enableLog) { Harness.OnConfigureBus += cfg => { LogContext.ConfigureCurrentLogContext(LoggerFactory); LoggerFactory.Current = default; }; } await Harness.Clean(); await Arrange(); _fixtureContext = TestExecutionContext.CurrentContext; LoggerFactory.Current = _fixtureContext; await StartTestHarness(); await Task.Delay(200); }
public ParseFileTestFixture() { UserId = NewId.NextGuid(); var builder = new ContainerBuilder(); builder.RegisterConsumers(Assembly.Load("Sds.SpectraFileParser.Processing")); builder.RegisterType <InMemoryStorage>() .As <IBlobStorage>() .SingleInstance(); var settings = ConfigurationManager.AppSettings.TestHarnessSettings(); _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(settings.Timeout); _harness.Handler <RecordParsed>(context => { return(Task.CompletedTask); }); _harness.Handler <FileParsed>(context => { return(Task.CompletedTask); }); var container = builder.Build(); _harness.OnConfigureBus += cfg => { cfg.ReceiveEndpoint("test", e => { e.LoadFrom(container); }); }; BlobStorage = container.Resolve <IBlobStorage>(); }
protected override void SetupActivities(BusTestHarness testHarness) { testHarness.OnConfigureBus += ConfigureBus; AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity(), h => h.UsePartitioner(_partitioner, args => args.Arguments.Value), h => h.UsePartitioner(_partitioner, args => args.Log.OriginalValue)); }
public ParseFileTestFixture() { UserId = NewId.NextGuid(); var builder = new ContainerBuilder(); builder.RegisterConsumers(Assembly.Load("Sds.OfficeProcessor.Processing")); builder.RegisterType <InMemoryStorage>() .As <IBlobStorage>() .SingleInstance(); _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(30); var container = builder.Build(); _harness.OnConfigureBus += cfg => { cfg.ReceiveEndpoint("test", e => { e.LoadFrom(container); }); }; BlobStorage = container.Resolve <IBlobStorage>(); }
internal void Apply(BusTestHarness harness) { if (_now) { harness.InactivityObserver.ForceInactive(); } }
public ValidRdfParseTests(ParseFileTestFixture fixture) { //_fixture = fixture; _blobStorage = fixture.BlobStorage; _harness = new InMemoryTestHarness(); _consumer = _harness.Consumer(() => new ParseFileCommandHandler(fixture.BlobStorage)); }
public SlowConcurrentSaga_Specs() { _sagaRepository = new Lazy <ISagaRepository <SlowConcurrentSaga> >(() => AzureTableSagaRepository <SlowConcurrentSaga> .Create(() => TestCloudTable)); _sagaTestHarness = BusTestHarness.StateMachineSaga(new SlowConcurrentSagaStateMachine(), _sagaRepository.Value); }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <ObjectGraphTestActivity, ObjectGraphActivityArguments, TestLog>( () => new ObjectGraphTestActivity(_intValue, _stringValue, _decimalValue, new[] { "Albert", "Chris" }, _argumentsDictionary)); AddActivityContext <TestActivity, TestArguments, TestLog>( () => new TestActivity()); }
public StandardizationValidationTestFixture() { UserId = Guid.NewGuid(); var builder = new ContainerBuilder(); builder.RegisterConsumers(Assembly.Load("Sds.ChemicalStandardizationValidation.Processing")); builder.RegisterType <InMemoryStorage>() .As <IBlobStorage>() .SingleInstance(); builder.RegisterModule <Sds.Cvsp.Compounds.Autofac.ValidationStandardizationModule>(); builder.Register(c => new XmlIssuesConfig(CompoundResources.LogCodes)).As <IIssuesConfig>(); _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(30); builder.RegisterModule <Cvsp.Compounds.Autofac.PropertiesCalculationModule>(); var container = builder.Build(); ServiceLocator.SetLocatorProvider(() => new AutofacServiceLocator(container)); _harness.OnConfigureBus += cfg => { cfg.ReceiveEndpoint("test", e => { e.LoadFrom(container); }); }; BlobStorage = container.Resolve <IBlobStorage>(); }
public static void WaitWhileModelTrained(this BusTestHarness harness, Guid folderId) { if (!harness.Published.Select <TrainingFinished>(m => m.Context.Message.Id == folderId).Any()) { throw new TimeoutException(); } }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity(), h => { h.UseConsoleLog(async context => GetBodyString(context.Context.ConsumeContext.ReceiveContext)); }); }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity(), h => { h.UseExecute(context => Console.WriteLine(GetBodyString(context.ReceiveContext))); }); }
public TestHarness() { var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.bddtests.json", true, true); var configuration = builder.Build(); var services = new ServiceCollection(); UserId = NewId.NextGuid(); _harness = new InMemoryTestHarness(); services.AddOptions(); services.AddSingleton <IEventStore, InMemoryEventStore>(); services.AddScoped <IEventPublisher, MassTransitEventPublisher>(); services.AddScoped <ISession, Session>(); services.AddScoped <IRepository, Repository>(); services.AddScoped <CreateRecordConsumer>(); services.AddScoped <RecordProcessedConsumer>(); services.AddSingleton <IConsumerScopeProvider, DependencyInjectionConsumerScopeProvider>(); services.AddSingleton <TestStateMachine>(); services.AddSingleton <ISagaRepository <TestState> >(new InMemorySagaRepository <TestState>()); services.AddSingleton((ctx) => { return(_harness.Bus as IBusControl); }); _harness.OnConfigureBus += cfg => { cfg.UseInMemoryOutbox(); cfg.ReceiveEndpoint($"receiver_saga_queue", e => { e.StateMachineSaga(_serviceProvider.GetRequiredService <TestStateMachine>(), _serviceProvider.GetRequiredService <ISagaRepository <TestState> >()); }); cfg.ReceiveEndpoint($"receiver_queue", e => { e.ScopedConsumer <CreateRecordConsumer>(_serviceProvider, c => c.UseCqrsLite()); e.Consumer(_serviceProvider.GetRequiredService <RecordProcessedConsumer>); }); }; _harness.Handler <RecordProcessed>(async context => { await Task.CompletedTask; }); _serviceProvider = services.BuildServiceProvider(); _harness.Start().Wait(); }
protected BusTestFixture(BusTestHarness harness) : base(harness) { BusTestHarness = harness; harness.OnConnectObservers += ConnectObservers; harness.OnConfigureBus += ConfigureBus; }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity()); AddActivityContext <FaultyActivity, FaultyArguments, FaultyLog>(() => new FaultyActivity(), x => { x.UseRetry(r => r.Immediate(2)); }); }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity()); AddActivityContext <FaultyActivity, FaultyArguments, FaultyLog>(() => new FaultyActivity()); AddActivityContext <FirstFaultyActivity, FaultyArguments, FaultyLog>(() => new FirstFaultyActivity()); AddActivityContext <FaultyCompensateActivity, TestArguments, TestLog>(() => new FaultyCompensateActivity()); AddActivityContext <FirstFaultyCompensateActivity, TestArguments, TestLog>(() => new FirstFaultyCompensateActivity()); }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity()); AddActivityContext <SecondTestActivity, TestArguments, TestLog>(() => new SecondTestActivity()); AddActivityContext <FaultyCompensateActivity, TestArguments, TestLog>(() => new FaultyCompensateActivity()); AddActivityContext <FaultyActivity, FaultyArguments, FaultyLog>(() => new FaultyActivity()); AddActivityContext <NastyFaultyActivity, FaultyArguments, FaultyLog>(() => new NastyFaultyActivity()); AddActivityContext <SetVariablesFaultyActivity, SetVariablesFaultyArguments>(() => new SetVariablesFaultyActivity()); }
public FileTests(IndexingFixture indexingFixture) { _fileId = Guid.NewGuid(); index = string.Empty; type = string.Empty; doc = null; docAsUpsert = null; string _someField = Guid.NewGuid().ToString(); string _someValue = Guid.NewGuid().ToString(); _fakeIndex = new List <IIndexRequest <dynamic> >(); _mongoDb = indexingFixture.MongoDb; var files = _mongoDb.GetCollection <BsonDocument>("Files"); files.InsertOne( new BsonDocument("_id", _fileId) .Add("Name", "Processed.mol") .Add("Status", "Processed") .Add(_someField, _someValue)); var list = new List <BsonDocument>(); for (int i = 0; i < 10; i++) { list.Add(new BsonDocument("_id", Guid.NewGuid()).Add("Name", i.ToString())); } files.InsertMany(list); _file = _mongoDb.GetCollection <dynamic>("Files").Find(new BsonDocument("_id", _fileId)).First(); ((IDictionary <string, object>)_file).Remove("_id"); ((IDictionary <string, object>)_file).Add("id", _fileId); _elasticClientMock = new Mock <IElasticClient>(); _elasticClientMock .Setup(m => m.IndexAsync <object>(It.IsAny <IIndexRequest>(), null, default(CancellationToken))) .Returns(Task.FromResult(new Mock <IIndexResponse>().Object)) .Callback <IIndexRequest <object>, Func <IndexDescriptor <object>, IIndexRequest>, CancellationToken>((a, s, c) => { _fakeIndex.Add(a); index = a.Index.Name; type = a.Type.Name; }).Verifiable(); _elasticClientMock.Setup(m => m.UpdateAsync <object, object>(It.IsAny <IUpdateRequest <object, object> >(), default(CancellationToken))) .Returns(Task.FromResult(new Mock <IUpdateResponse <object> >().Object)) .Callback <IUpdateRequest <object, object>, CancellationToken>((a, c) => { index = a.Index.Name; type = a.Type.Name; docAsUpsert = a.DocAsUpsert; doc = a.Doc as IDictionary <string, object>; }).Verifiable(); _harness = new InMemoryTestHarness(); _consumer = _harness.Consumer(() => new FileEventHandler(_elasticClientMock.Object, _mongoDb, _blobStorage)); _harness.Start().Wait(); }
public ValidCifParseTests(ParseFileTestFixture fixture) { _blobStorage = fixture.BlobStorage; var settings = ConfigurationManager.AppSettings.TestHarnessSettings(); _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(settings.Timeout); _consumer = _harness.Consumer(() => new ParseFileCommandHandler(fixture.BlobStorage)); }
public async Task CamelCasedJsonIsPreservedAcrossMassTransitBoundary() { Harness = new InMemoryTestHarness(); var messagePackOptions = new MessagePackHubProtocolOptions(); var jsonOptions = new JsonHubProtocolOptions(); jsonOptions.PayloadSerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); var backplane1Harness = RegisterBusEndpoint("receiveEndpoint1"); var backplane2Harness = RegisterBusEndpoint("receiveEndpoint2"); await Harness.Start(); try { backplane1Harness.SetHubLifetimeManager(CreateLifetimeManager(messagePackOptions, jsonOptions)); backplane2Harness.SetHubLifetimeManager(CreateLifetimeManager()); using (var client1 = new TestClient()) using (var client2 = new TestClient()) { var manager1 = backplane1Harness.HubLifetimeManager; var manager2 = backplane2Harness.HubLifetimeManager; var connection1 = HubConnectionContextUtils.Create(client1.Connection); var connection2 = HubConnectionContextUtils.Create(client2.Connection); await manager1.OnConnectedAsync(connection1).OrTimeout(); await manager2.OnConnectedAsync(connection2).OrTimeout(); await manager1.SendAllAsync("Hello", new object[] { new TestObject { TestProperty = "Foo" } }); Assert.IsTrue(backplane2Harness.All.Consumed.Select <All <MyHub> >().Any()); var message = await client2.ReadAsync().OrTimeout() as InvocationMessage; Assert.NotNull(message); Assert.AreEqual("Hello", message.Target); CollectionAssert.AllItemsAreInstancesOfType(message.Arguments, typeof(JObject)); var jObject = message.Arguments[0] as JObject; Assert.NotNull(jObject); var firstProperty = jObject.Properties().First(); Assert.AreEqual("testProperty", firstProperty.Name); Assert.AreEqual("Foo", firstProperty.Value.Value <string>()); } } finally { await Harness.Stop(); } }
public static void WaitWhileFolderMoved(this BusTestHarness harness, Guid id) { if (!harness.Published.Select <Generic.Domain.Events.Folders.MovedFolderPersisted>(m => m.Context.Message.Id == id).Any()) { throw new TimeoutException(); } if (!harness.Published.Select <Generic.Domain.Events.Nodes.MovedFolderPersisted>(m => m.Context.Message.Id == id).Any()) { throw new TimeoutException(); } }
public static void WaitWhileFileShared(this BusTestHarness harness, Guid id) { if (!harness.Published.Select <Generic.Domain.Events.Files.PermissionChangedPersisted>(m => m.Context.Message.Id == id).Any()) { throw new TimeoutException(); } // if (!harness.Published.Select<Generic.Domain.Events.Nodes.PermissionChangedPersisted>(m => m.Context.Message.Id == id).Any()) // { // throw new TimeoutException(); // } }
public IndexingFixture() { _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(30); FakeIndex = new List <IIndexRequest <dynamic> >(); ElasticClientMock = new Mock <IElasticClient>(); ElasticClientMock .Setup(m => m.IndexAsync <object>(It.IsAny <IIndexRequest>(), null, default(CancellationToken))) .Returns(Task.FromResult(new Mock <IIndexResponse>().Object)) .Callback <IIndexRequest <object>, Func <IndexDescriptor <object>, IIndexRequest>, CancellationToken>((a, s, c) => { FakeIndex.Add(a); }); //ElasticClientMock // .Setup(m => m.UpdateAsync<object, object>(It.Is<IUpdateRequest<object, object>>(r => // r.DocAsUpsert == true && r.Index.Name == "files" && r.Type.Name == "file"), default(CancellationToken))) // .Returns(Task.FromResult(new Mock<IUpdateResponse<object>>().Object)) // .Callback<IIndexRequest<object>, Func<IndexDescriptor<object>, IIndexRequest>, CancellationToken>((a, s, c) => // FakeIndex.Add(a)); var services = new ServiceCollection(); UserId = Guid.NewGuid(); services.AddTransient(x => ElasticClientMock.Object); var allAssemblies = new Assembly[] { Assembly.Load(new AssemblyName("Sds.Indexing")) }; services.AddAllConsumers(allAssemblies); services.AddSingleton((ctx) => { return(_harness.Bus as IBusControl); }); _harness.OnConfigureBus += cfg => { cfg.RegisterConsumers(_serviceProvider, allAssemblies); }; services.AddSingleton(new MongoClient(Environment.ExpandEnvironmentVariables("%OSDR_MONGO_DB%"))); services.AddScoped(service => service.GetService <MongoClient>().GetDatabase(MongoDatabaseName)); services.AddTransient(x => BlobStorage); _serviceProvider = services.BuildServiceProvider(); _harness.Start().Wait(); }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity()); var testActivity = GetActivityContext <TestActivity>(); AddActivityContext <ReviseItineraryActivity, TestArguments, TestLog>(() => new ReviseItineraryActivity(x => { x.AddActivity(testActivity.Name, testActivity.ExecuteUri, new { Value = "Added" }); x.AddSubscription(InputQueueAddress, RoutingSlipEvents.ActivityCompleted | RoutingSlipEvents.Supplemental, RoutingSlipEventContents.All, testActivity.Name); })); }
public SlowConcurrentSaga_Specs() { // rowlock statements that don't work to cause a deadlock. var notWorkingRowLockStatements = new SqlLockStatementProvider("dbo", "SELECT * FROM \"{1}\" WHERE \"CorrelationId\" = @p0"); // add new migration by calling // dotnet ef migrations add --context "SagaDbContext``2" Init -v _sagaRepository = new Lazy <ISagaRepository <SlowConcurrentSaga> >(() => EntityFrameworkSagaRepository <SlowConcurrentSaga> .CreatePessimistic( () => new SlowConcurrentSagaContextFactory().CreateDbContext(DbContextOptionsBuilder), notWorkingRowLockStatements)); _sagaTestHarness = BusTestHarness.StateMachineSaga(new SlowConcurrentSagaStateMachine(), _sagaRepository.Value); }
public ImagingTestFixture() { _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(30); _harness.OnConfigureBus += cfg => { cfg.ReceiveEndpoint("test", e => { //e.Consumer(() => new ImagingCommandHandler(BlobStorage)); }); }; _harness.Start().Wait(); }
protected override void SetupActivities(BusTestHarness testHarness) { AddActivityContext <TestActivity, TestArguments, TestLog>(() => new TestActivity()); AddActivityContext <ReviseToEmptyItineraryActivity, TestArguments, TestLog>( () => new ReviseToEmptyItineraryActivity()); AddActivityContext <ReviseWithNoChangeItineraryActivity, TestArguments, TestLog>( () => new ReviseWithNoChangeItineraryActivity()); ActivityTestContext testActivity = GetActivityContext <TestActivity>(); AddActivityContext <ReviseItineraryActivity, TestArguments, TestLog>( () => new ReviseItineraryActivity( x => x.AddActivity(testActivity.Name, testActivity.ExecuteUri, new { Value = "Added" }))); }
public static async Task <Guid> CreateFolder(this BusTestHarness harness, string name, Guid parentId, Guid userId) { Guid id = NewId.NextGuid(); await harness.Bus.Publish <CreateFolder>(new { Id = id, Name = name, ParentId = parentId, UserId = userId }); harness.WaitWhileFolderCreated(id); return(id); }
public ConverterFixture() { UserId = Guid.NewGuid(); _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(5); _harness.OnConfigureBus += cfg => { cfg.ReceiveEndpoint("test", e => { e.Consumer(() => new GeneratePdfFromHtmlCommandHandler(BlobStorage)); }); }; _harness.Start().Wait(); }
public ExportTestFixture() { UserId = Guid.NewGuid(); _harness = new InMemoryTestHarness(); _harness.TestTimeout = TimeSpan.FromSeconds(5); provider = new BlobStorageRecordsProvider(BlobStorage); _harness.OnConfigureBus += cfg => { cfg.ReceiveEndpoint("test", e => { e.Consumer(() => new ExportFileCommandHandler(BlobStorage, provider)); }); }; _harness.Start().Wait(); }