/// <summary>
        /// Create fixture
        /// </summary>
        public TwinModuleFixture()
        {
            HubContainer = CreateHubContainer();
            _hub         = HubContainer.Resolve <IIoTHubTwinServices>();

            DeviceId = Guid.NewGuid().ToString();
            ModuleId = Guid.NewGuid().ToString();

            // Create module identitity
            var twin = _hub.CreateOrUpdateAsync(new DeviceTwinModel {
                Id       = DeviceId,
                ModuleId = ModuleId
            }).Result;

            _etag = twin.Etag;

            // Get device registration and create module host with controller
            _device  = _hub.GetRegistrationAsync(twin.Id, twin.ModuleId).Result;
            _running = false;

            _module = new ModuleProcess(null, this);
            var tcs = new TaskCompletionSource <bool>();

            _module.OnRunning += (_, e) => tcs.TrySetResult(e);
            _process           = Task.Run(() => _module.RunAsync());

            // Wait
            _running = tcs.Task.Result;
        }
        /// <summary>
        /// Create fixture
        /// </summary>
        public TwinModuleFixture()
        {
            HubContainer = CreateHubContainer();
            _hub         = HubContainer.Resolve <IIoTHubTwinServices>();

            DeviceId = Guid.NewGuid().ToString();
            ModuleId = Guid.NewGuid().ToString();

            // Create module identitity
            var twin = _hub.CreateAsync(new DeviceTwinModel {
                Id       = DeviceId,
                ModuleId = ModuleId
            }).Result;

            _etag = twin.Etag;

            // Get device registration and create module host with controller
            _device  = _hub.GetRegistrationAsync(twin.Id, twin.ModuleId).Result;
            _running = false;
            var configuration = new ConfigurationBuilder()
                                .AddInMemoryCollection(new Dictionary <string, string> {
                { "EnableMetrics", "false" }
            })
                                .Build();

            _module = new ModuleProcess(configuration, this);
            var tcs = new TaskCompletionSource <bool>();

            _module.OnRunning += (_, e) => tcs.TrySetResult(e);
            _process           = Task.Run(() => _module.RunAsync());

            // Wait
            _running = tcs.Task.Result;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Create fixture
        /// </summary>
        public TwinModuleFixture()
        {
            DeviceId = Utils.GetHostName();
            ModuleId = Guid.NewGuid().ToString();

            ServerPkiRootPath = Path.Combine(Directory.GetCurrentDirectory(), "pki",
                                             Guid.NewGuid().ToByteArray().ToBase16String());
            ClientPkiRootPath = Path.Combine(Directory.GetCurrentDirectory(), "pki",
                                             Guid.NewGuid().ToByteArray().ToBase16String());

            _config = new ConfigurationBuilder()
                      .AddInMemoryCollection(new Dictionary <string, string> {
                { "EnableMetrics", "false" },
                { "PkiRootPath", ClientPkiRootPath }
            })
                      .Build();
            HubContainer = CreateHubContainer();
            _hub         = HubContainer.Resolve <IIoTHubTwinServices>();

            // Create module identitity
            var twin = _hub.CreateOrUpdateAsync(new DeviceTwinModel {
                Id       = DeviceId,
                ModuleId = ModuleId
            }).Result;

            _etag = twin.Etag;

            // Get device registration and create module host with controller
            _device  = _hub.GetRegistrationAsync(twin.Id, twin.ModuleId).Result;
            _running = false;
            _module  = new ModuleProcess(_config, this);
            var tcs = new TaskCompletionSource <bool>();

            _module.OnRunning += (_, e) => tcs.TrySetResult(e);
            _process           = Task.Run(() => _module.RunAsync());

            // Wait
            _running = tcs.Task.Result;
        }