Пример #1
0
        public void IdGenerator_GetFromConfig_ReturnsSameInstanceForSameName()
        {
            var target1 = AppConfigFactory.GetFromConfig("foo");
            var target2 = AppConfigFactory.GetFromConfig("foo");

            Assert.IsTrue(ReferenceEquals(target1, target2));
        }
Пример #2
0
        private static void Main(string[] args)
        {
            var ct = new CancellationTokenSource();
            var serviceProvider = new ServiceCollection()
                                  .AddLogging(configure => {
                configure.AddConsole();
                configure.SetMinimumLevel(LogLevel.Debug);
            })
                                  .AddSingleton(typeof(CancellationToken), ct.Token)
                                  .AddSingleton(AppConfigFactory.GetConfig())
                                  .AddSingleton <IDeviceService, DeviceService>()
                                  .AddSingleton <IEmbededWebServer, EmbededWebServer>()
                                  .AddSingleton <IFileService, FileService>()
                                  .AddSingleton <IJobService, JobService>()
                                  .AddScoped <IFilesHandler, FilesHandler>()
                                  .AddScoped <ISerialHandler, SerialHandler>()
                                  .AddScoped <ICommandHandler, CommandHandler>()
                                  .AddSingleton <IEventHubService>(new EventHubService(Hub.Default))
                                  .AddSingleton <MqttChannel>()
                                  .BuildServiceProvider();

            Console.CancelKeyPress += (s, e) => {
                ct.Cancel();
                serviceProvider.GetService <IDeviceService>().Close();
            };

            // Move connect when on configuration mqtt ip address is added.
            //serviceProvider.GetService<MqttChannel>().Connect(System.Net.IPAddress.Parse("127.0.0.1"));
            Task.Run(async() => {
                await serviceProvider.GetService <IEmbededWebServer>().Start(serviceProvider);
            }, ct.Token);
            Console.WriteLine("Press any key to exit");
            Console.ReadKey(true);
            serviceProvider.Dispose();
        }
Пример #3
0
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

            var config = new AppConfigFactory().LoadConfiguration(Data.ConfigType.AppConfig);

            new ConfigStorage().PopulateConfiguration(config);
        }
Пример #4
0
        public void IdGenerator_GetFromConfig_ParsesTickDurationCorrectly()
        {
            Assert.AreEqual(TimeSpan.FromMilliseconds(50), AppConfigFactory.GetFromConfig("foo").TimeSource.TickDuration);
            Assert.AreEqual(new TimeSpan(1, 2, 3), AppConfigFactory.GetFromConfig("bar").TimeSource.TickDuration);
            Assert.AreEqual(TimeSpan.FromTicks(7), AppConfigFactory.GetFromConfig("baz").TimeSource.TickDuration);

            // Make sure the default tickduration is 1 ms
            Assert.AreEqual(TimeSpan.FromMilliseconds(1), AppConfigFactory.GetFromConfig("nt").TimeSource.TickDuration);
        }
Пример #5
0
        public void IdGenerator_GetFromConfig_CreatesCorrectGenerator()
        {
            var target = AppConfigFactory.GetFromConfig("foo");

            Assert.AreEqual(123, target.Id);
            Assert.AreEqual(new DateTime(2016, 1, 2, 12, 34, 56, DateTimeKind.Utc), target.Epoch);
            Assert.AreEqual(39, target.MaskConfig.TimestampBits);
            Assert.AreEqual(11, target.MaskConfig.GeneratorIdBits);
            Assert.AreEqual(13, target.MaskConfig.SequenceBits);
            Assert.AreEqual(TimeSpan.FromMilliseconds(50), target.TimeSource.TickDuration);
        }
Пример #6
0
        public void IdGenerator_GetFromConfig_CreatesCorrectGenerator2()
        {
            var target = AppConfigFactory.GetFromConfig("baz");

            Assert.AreEqual(2047, target.Id);
            Assert.AreEqual(new DateTime(2016, 2, 29, 0, 0, 0, DateTimeKind.Utc), target.Options.TimeSource.Epoch);
            Assert.AreEqual(21, target.Options.IdStructure.TimestampBits);
            Assert.AreEqual(21, target.Options.IdStructure.GeneratorIdBits);
            Assert.AreEqual(21, target.Options.IdStructure.SequenceBits);
            Assert.AreEqual(TimeSpan.FromTicks(7), target.Options.TimeSource.TickDuration);
            Assert.AreEqual(SequenceOverflowStrategy.SpinWait, target.Options.SequenceOverflowStrategy);
        }
Пример #7
0
        public void IdGenerator_GetFromConfig_CreatesCorrectGenerator1()
        {
            var target = AppConfigFactory.GetFromConfig("foo");

            Assert.AreEqual(123, target.Id);
            Assert.AreEqual(new DateTime(2016, 1, 2, 12, 34, 56, DateTimeKind.Utc), target.Options.TimeSource.Epoch);
            Assert.AreEqual(39, target.Options.IdStructure.TimestampBits);
            Assert.AreEqual(11, target.Options.IdStructure.GeneratorIdBits);
            Assert.AreEqual(13, target.Options.IdStructure.SequenceBits);
            Assert.AreEqual(TimeSpan.FromMilliseconds(50), target.Options.TimeSource.TickDuration);
            Assert.AreEqual(SequenceOverflowStrategy.Throw, target.Options.SequenceOverflowStrategy);
        }
Пример #8
0
        public void IdGeneratorElement_Property_Setters()
        {
            // We create an IdGeneratorElement from code and compare it to an IdGeneratorElement from config.
            var target = new IdGeneratorElement()
            {
                Name            = "newfoo",
                Id              = 123,
                Epoch           = new DateTime(2016, 1, 2, 12, 34, 56, DateTimeKind.Utc),
                TimestampBits   = 39,
                GeneratorIdBits = 11,
                SequenceBits    = 13,
                TickDuration    = TimeSpan.FromMilliseconds(50)
            };
            var expected = AppConfigFactory.GetFromConfig("foo");

            Assert.AreEqual(expected.Id, target.Id);
            Assert.AreEqual(expected.Epoch, target.Epoch);
            Assert.AreEqual(expected.MaskConfig.TimestampBits, target.TimestampBits);
            Assert.AreEqual(expected.MaskConfig.GeneratorIdBits, target.GeneratorIdBits);
            Assert.AreEqual(expected.MaskConfig.SequenceBits, target.SequenceBits);
            Assert.AreEqual(expected.TimeSource.TickDuration, target.TickDuration);
        }
Пример #9
0
 public IAppConfig Get() => AppConfigFactory.GetConfig();
Пример #10
0
 public void Save([JsonData] IAppConfig config) => AppConfigFactory.SaveConfig(config);
Пример #11
0
 public void IdGenerator_GetFromConfig_ParsesEpochCorrectly()
 {
     Assert.AreEqual(new DateTime(2016, 1, 2, 12, 34, 56, DateTimeKind.Utc), AppConfigFactory.GetFromConfig("foo").Epoch);
     Assert.AreEqual(new DateTime(2016, 2, 1, 1, 23, 45, DateTimeKind.Utc), AppConfigFactory.GetFromConfig("bar").Epoch);
     Assert.AreEqual(new DateTime(2016, 2, 29, 0, 0, 0, DateTimeKind.Utc), AppConfigFactory.GetFromConfig("baz").Epoch);
 }
Пример #12
0
 public void IdGenerator_GetFromConfig_ThrowsOnInvalidEpoch()
 {
     var target = AppConfigFactory.GetFromConfig("e2");
 }
Пример #13
0
 public void IdGenerator_GetFromConfig_ThrowsOnNonExisting()
 {
     var target = AppConfigFactory.GetFromConfig("xxx");
 }
Пример #14
0
 public void IdGenerator_GetFromConfig_IsCaseSensitive()
 {
     var target = AppConfigFactory.GetFromConfig("Foo");
 }
Пример #15
0
 public void IdGenerator_GetFromConfig_ThrowsOnInvalidIdStructure()
 {
     AppConfigFactory.GetFromConfig("e1");
 }