Exemplo n.º 1
0
        public override ScenarioInstance <ISerializer> CreateInstance()
        {
            var serializer = new DataContractSerializer(_typeProvider);
            var instance   = new ScenarioInstance <ISerializer>(serializer);

            return(instance);
        }
Exemplo n.º 2
0
        public ScenarioInstance <BusBuilderConfiguration> CreateInstance()
        {
            var transport    = _transport.CreateInstance();
            var router       = _router.CreateInstance();
            var serializer   = _serializer.CreateInstance();
            var compressor   = _compressor.CreateInstance();
            var iocContainer = _iocContainer.CreateInstance();
            var syncContext  = _syncContext.CreateInstance();

            var configuration = new Nimbus.Configuration.BusBuilder()
                                .Configure()
                                .WithTransport(transport.Configuration)
                                .WithRouter(router.Configuration)
                                .WithSerializer(serializer.Configuration)
                                .WithCompressor(compressor.Configuration)
                                .WithDeliveryRetryStrategy(new ImmediateRetryDeliveryStrategy())
                                .WithNames("MyTestSuite", Environment.MachineName)
                                .WithTypesFrom(_typeProvider)
                                .WithHeartbeatInterval(TimeSpan.MaxValue)
                                .WithLogger(_logger)
                                .WithDebugOptions(
                dc =>
                dc.RemoveAllExistingNamespaceElementsOnStartup(
                    "I understand this will delete EVERYTHING in my namespace. I promise to only use this for test suites."))
                                .Chain(iocContainer.Configuration.ApplyContainerDefaults)
            ;

            var instance = new ScenarioInstance <BusBuilderConfiguration>(configuration);

            instance.Disposing += (s, e) => syncContext.Dispose();

            return(instance);
        }
Exemplo n.º 3
0
        public override ScenarioInstance <ISerializer> CreateInstance()
        {
            var serializer = new JsonSerializer();
            var instance   = new ScenarioInstance <ISerializer>(serializer);

            return(instance);
        }
Exemplo n.º 4
0
        public override ScenarioInstance <ICompressor> CreateInstance()
        {
            var compressor = new DeflateCompressor();
            var instance   = new ScenarioInstance <ICompressor>(compressor);

            return(instance);
        }
Exemplo n.º 5
0
        public override ScenarioInstance <IRouter> CreateInstance()
        {
            var router   = new DestinationPerMessageTypeRouter();
            var instance = new ScenarioInstance <IRouter>(router);

            return(instance);
        }
Exemplo n.º 6
0
        public override ScenarioInstance <TransportConfiguration> CreateInstance()
        {
            var configuration = new InProcessTransportConfiguration();

            var instance = new ScenarioInstance <TransportConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 7
0
        public override ScenarioInstance <SyncContextConfiguration> CreateInstance()
        {
            var syncContext = new SingleThreadedSynchronizationContext();
            var instance    = new ScenarioInstance <SyncContextConfiguration>(new SyncContextConfiguration());

            instance.Disposing += (s, e) => syncContext.Dispose();
            return(instance);
        }
Exemplo n.º 8
0
        public override ScenarioInstance <SyncContextConfiguration> CreateInstance()
        {
            var instance            = new ScenarioInstance <SyncContextConfiguration>(new SyncContextConfiguration());
            var previousSyncContext = SynchronizationContext.Current;

            SynchronizationContext.SetSynchronizationContext(null);
            instance.Disposing += (s, e) => SynchronizationContext.SetSynchronizationContext(previousSyncContext);
            return(instance);
        }
Exemplo n.º 9
0
        public override ScenarioInstance <LargeMessageStorageConfiguration> CreateInstance()
        {
            var azureBlobStorageConnectionString = DefaultSettingsReader.Get <AzureBlobStorageConnectionString>();
            var configuration = new AzureBlobStorageLargeMessageStorageConfiguration()
                                .UsingStorageAccountConnectionString(azureBlobStorageConnectionString);

            var instance = new ScenarioInstance <LargeMessageStorageConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 10
0
        public void TearDown()
        {
            var bus = Bus;

            Bus = null;
            bus?.Dispose();

            _instance?.Dispose();
            _instance = null;
        }
Exemplo n.º 11
0
        public override ScenarioInstance <TransportConfiguration> CreateInstance()
        {
            var connectionString = AppSettingsLoader.Settings.Transports.Redis.ConnectionString;

            var configuration = new RedisTransportConfiguration()
                                .WithConnectionString(connectionString);

            var instance = new ScenarioInstance <TransportConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 12
0
        public override ScenarioInstance <ContainerConfiguration> CreateInstance()
        {
            var configuration = new ContainerConfiguration
            {
                ApplyContainerDefaults = bbc => bbc.WithDependencyResolver(new DependencyResolver(bbc.TypeProvider))
            };

            var instance = new ScenarioInstance <ContainerConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 13
0
        public override ScenarioInstance <TransportConfiguration> CreateInstance()
        {
            var connectionString = DefaultSettingsReader.Get <RedisConnectionString>();

            var configuration = new RedisTransportConfiguration()
                                .WithConnectionString(connectionString);

            var instance = new ScenarioInstance <TransportConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 14
0
        public override ScenarioInstance <LargeMessageStorageConfiguration> CreateInstance()
        {
            var uri       = DefaultSettingsReader.Get <AzureBlobStorageContainerUri>();
            var accessKey = DefaultSettingsReader.Get <AzureBlobStorageContainerSharedAccessSignature>();

            var configuration = new AzureBlobStorageHttpLargeMessageStorageConfiguration()
                                .UsingBlobStorageContainer(uri, accessKey);

            var instance = new ScenarioInstance <LargeMessageStorageConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 15
0
        public ScenarioInstance <TransportConfiguration> CreateInstance()
        {
            var largeMessageStorageInstance = _largeMessageScenario.CreateInstance();

            var azureServiceBusConnectionString = DefaultSettingsReader.Get <AzureServiceBusConnectionString>();
            var configuration = new WindowsServiceBusTransportConfiguration()
                                .WithConnectionString(azureServiceBusConnectionString)
                                .WithLargeMessageStorage(largeMessageStorageInstance.Configuration);

            var instance = new ScenarioInstance <TransportConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 16
0
        public override ScenarioInstance <LargeMessageStorageConfiguration> CreateInstance()
        {
            var largeMessageBodyTempPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                                                        "Nimbus Integration Test Suite",
                                                        Guid.NewGuid().ToString());

            var configuration = new FileSystemStorageConfiguration()
                                .WithStorageDirectory(largeMessageBodyTempPath);

            var instance = new ScenarioInstance <LargeMessageStorageConfiguration>(configuration);

            instance.Disposing += (s, e) => Directory.Delete(largeMessageBodyTempPath, true);

            return(instance);
        }
        protected virtual async Task Given(IConfigurationScenario<BusBuilderConfiguration> scenario)
        {
            _instance = scenario.CreateInstance();
            _numMessagesSent = 0;

            var busBuilderConfiguration = _instance.Configuration;

            if (!Debugger.IsAttached)
            {
                busBuilderConfiguration.WithLogger(new NullLogger());
            }

            Bus = busBuilderConfiguration.Build();
            Log.Debug("Starting bus...");
            await Bus.Start();
            Log.Debug("Bus started.");
        }
        protected virtual async Task Given(IConfigurationScenario<BusBuilderConfiguration> scenario)
        {
            _instance = scenario.CreateInstance();
            _numMessagesSent = 0;

            var busBuilderConfiguration = _instance.Configuration;

            var logger = Debugger.IsAttached
                ? TestHarnessLoggerFactory.Create(Guid.NewGuid(), GetType().FullName)
                : new NullLogger();
            busBuilderConfiguration.WithLogger(logger);

            Bus = busBuilderConfiguration.Build();
            Log.Debug("Starting bus...");
            await Bus.Start();
            Log.Debug("Bus started.");
        }
Exemplo n.º 19
0
        public override ScenarioInstance <TransportConfiguration> CreateInstance()
        {
            //var largeMessageStorageInstance = _largeMessageScenario.CreateInstance();
            var azureServiceBusConnectionString = Environment.GetEnvironmentVariable("AZURE_SERVICE_BUS_CONNECTIONSTRING");

            if (string.IsNullOrEmpty(azureServiceBusConnectionString))
            {
                azureServiceBusConnectionString = AppSettingsLoader.Settings.Transports.AzureServiceBus.ConnectionString;
            }

            var configuration = new AzureServiceBusTransportConfiguration()
                                .WithConnectionString(azureServiceBusConnectionString);
            //.WithLargeMessageStorage(largeMessageStorageInstance.Configuration);

            var instance = new ScenarioInstance <TransportConfiguration>(configuration);

            return(instance);
        }
Exemplo n.º 20
0
        protected virtual async Task Given(IConfigurationScenario <BusBuilderConfiguration> scenario)
        {
            _instance        = scenario.CreateInstance();
            _numMessagesSent = 0;

            var busBuilderConfiguration = _instance.Configuration;

            if (!Debugger.IsAttached)
            {
                busBuilderConfiguration.WithLogger(new NullLogger());
            }

            Bus = busBuilderConfiguration.Build();
            Log.Debug("Starting bus...");
            await Bus.Start();

            Log.Debug("Bus started.");
        }
Exemplo n.º 21
0
        public override ScenarioInstance <ContainerConfiguration> CreateInstance()
        {
            var unityContainer = new UnityContainer();
            var configuration  = new ContainerConfiguration
            {
                ApplyContainerDefaults = bbc =>
                {
                    unityContainer.RegisterNimbus(bbc.TypeProvider);

                    return(bbc.WithUnityDependencyResolver(unityContainer));
                }
            };
            var instance = new ScenarioInstance <ContainerConfiguration>(configuration);

            instance.Disposing += (s, e) => unityContainer.Dispose();

            return(instance);
        }
Exemplo n.º 22
0
        public override ScenarioInstance <ContainerConfiguration> CreateInstance()
        {
            var kernel = new StandardKernel();

            var configuration = new ContainerConfiguration
            {
                ApplyContainerDefaults = bbc =>
                {
                    kernel.RegisterNimbus(bbc.TypeProvider);
                    return(bbc.WithNinjectDefaults(kernel));
                }
            };
            var instance = new ScenarioInstance <ContainerConfiguration>(configuration);

            instance.Disposing += (s, e) => kernel.Dispose();

            return(instance);
        }
        protected virtual async Task Given(IConfigurationScenario <BusBuilderConfiguration> scenario)
        {
            _instance        = scenario.CreateInstance();
            _numMessagesSent = 0;

            var busBuilderConfiguration = _instance.Configuration;

            var logger = Debugger.IsAttached
                ? TestHarnessLoggerFactory.Create(Guid.NewGuid(), GetType().FullName)
                : new NullLogger();

            busBuilderConfiguration.WithLogger(logger);

            Bus = busBuilderConfiguration.Build();
            Log.Debug("Starting bus...");
            await Bus.Start();

            Log.Debug("Bus started.");
        }
Exemplo n.º 24
0
        public override ScenarioInstance <ContainerConfiguration> CreateInstance()
        {
            var windsorContainer = new WindsorContainer();

            var configuration = new ContainerConfiguration
            {
                ApplyContainerDefaults = bbc =>
                {
                    windsorContainer.RegisterNimbus(bbc.TypeProvider);

                    return(bbc.WithWindsorDefaults(windsorContainer));
                }
            };

            var instance = new ScenarioInstance <ContainerConfiguration>(configuration);

            instance.Disposing += (s, e) => windsorContainer.Dispose();

            return(instance);
        }
Exemplo n.º 25
0
        public override ScenarioInstance <ContainerConfiguration> CreateInstance()
        {
            var container = new ContainerBuilder().Build();

            var configuration = new ContainerConfiguration
            {
                ApplyContainerDefaults = bbc =>
                {
                    var updater = new ContainerBuilder();
                    updater.RegisterNimbus(bbc.TypeProvider);
                    updater.Update(container);
                    return(bbc.WithAutofacDefaults(container));
                }
            };

            var instance = new ScenarioInstance <ContainerConfiguration>(configuration);

            instance.Disposing += (s, e) => container.Dispose();

            return(instance);
        }
Exemplo n.º 26
0
 public override ScenarioInstance<ICompressor> CreateInstance()
 {
     var compressor = new NullCompressor();
     var instance = new ScenarioInstance<ICompressor>(compressor);
     return instance;
 }
        public void TearDown()
        {
            var bus = Bus;
            Bus = null;
            bus?.Dispose();

            _instance?.Dispose();
            _instance = null;
        }
Exemplo n.º 28
0
            public void Fixup()
            {
                Scnr.MapType    = ScenarioMapType.Multiplayer;
                Scnr.MapSubType = ScenarioMapSubType.None;
                Scnr.CampaignId = -1;

                FixupStructureBspReferences();
                FixupSkies();
                FixupZoneSets();
                FixupAllScenarioObjects();
                FixupScenarioClusterData();

                Scnr.BspAtlas.Clear();
                Scnr.CampaignPlayers.Clear();
                Scnr.SoftCeilings.Clear();
                Scnr.PlayerStartingProfile.Clear();
                Scnr.PlayerStartingLocations.Clear();
                Scnr.TriggerVolumes.Clear();
                Scnr.RecordedAnimations.Clear();
                Scnr.ZonesetSwitchTriggerVolumes.Clear();
                Scnr.Unknown32.Clear();
                Scnr.Unknown33.Clear();
                Scnr.Unknown34.Clear();
                Scnr.Unknown35.Clear();
                Scnr.Unknown36.Clear();
                Scnr.StylePalette.Clear();
                Scnr.SquadGroups.Clear();
                Scnr.Squads.Clear();
                Scnr.Zones.Clear();
                Scnr.SquadPatrols.Clear();
                Scnr.MissionScenes.Clear();
                Scnr.CharacterPalette.Clear();
                Scnr.Scripts.Clear();
                Scnr.ScriptingData.Clear();
                Scnr.ScriptStrings = null;
                Scnr.ScriptSourceFileReferences.Clear();
                Scnr.ScriptExternalFileReferences.Clear();
                Scnr.Scripts.Clear();
                Scnr.Globals.Clear();
                Scnr.CutsceneFlags.Clear();
                Scnr.CutsceneCameraPoints.Clear();
                Scnr.Cinematics.Clear();
                Scnr.CinematicLighting.Clear();
                Scnr.CutsceneTitles.Clear();
                Scnr.CustomObjectNameStrings = null;
                Scnr.ChapterTitleStrings     = null;
                Scnr.UnitSeatsMapping.Clear();
                Scnr.ScenarioKillTriggers.Clear();
                Scnr.ScenarioSafeTriggers.Clear();
                Scnr.ScriptExpressions.Clear();
                Scnr.SubtitleStrings = null;
                Scnr.MissionDialogue.Clear();
                Scnr.ObjectiveStrings = null;
                Scnr.Interpolators.Clear();
                Scnr.SimulationDefinitionTable.Clear();
                Scnr.ObjectReferenceFrames.Clear();
                Scnr.AiObjectives.Clear();
                Scnr.DesignerZoneSets.Clear();
                Scnr.Unknown135.Clear();
                Scnr.ScenarioMetagame.Clear();
                Scnr.EditorFolders.Clear();

                if (!ConversionFlags.HasFlag(MultiplayerScenarioConversionFlags.PathFinding))
                {
                    Scnr.AiPathfindingData.Clear();
                }

                ScenarioInstance targetInstance = Scnr.Scenery.FirstOrDefault();

                if (targetInstance == null)
                {
                    targetInstance = Scnr.Crates.FirstOrDefault();
                }

                if (targetInstance != null)
                {
                    var position = targetInstance.Position;
                    position.Z += 0.5f;

                    if (ConversionFlags.HasFlag(MultiplayerScenarioConversionFlags.SpawnPoint))
                    {
                        AddRespawnPoint(position, targetInstance.Rotation);
                    }

                    AddPrematchCamera(position, targetInstance.Rotation);
                }

                Scnr.PlayerStartingProfile = new List <PlayerStartingProfileBlock>
                {
                    new PlayerStartingProfileBlock
                    {
                        Name                     = "start_assault",
                        PrimaryWeapon            = CacheContext.GetTag <Weapon>(@"objects\weapons\rifle\assault_rifle\assault_rifle"),
                        PrimaryRoundsLoaded      = 32,
                        PrimaryRoundsTotal       = 96,
                        StartingFragGrenadeCount = 2,
                        Unknown3                 = -1
                    }
                };

                CacheContext.Serialize(CacheStream, ScnrTag, Scnr);

                FixupInstancedGeometry();
            }