Beispiel #1
0
        public void TestSnapshotEventsIsFiredOnSnapshotInerval()
        {
            var snapshotInterval = TimeSpan.FromSeconds(10);

            Twin.ChangeEventPriority(typeof(FakePeriodicEvent).Name, EventPriority.Low)
            .ChangeEventPriority(typeof(FakeTriggeredEvent).Name, EventPriority.High)
            .ChangeConfiguration("snapshotFrequency", XmlConvert.ToString(snapshotInterval))
            .UpdateAgentTwinConfiguration();

            Assert.AreEqual(snapshotInterval, AgentConfiguration.RemoteConfiguration.SnapshotFrequency);

            using (SingleThreadedAgent agent = new SingleThreadedAgent())
            {
                var taskUnderTest = new Task(agent.Start);
                taskUnderTest.Start();

                var expectedEvent = FakesEventsFactory.CreateFakePeriodicEvent(EventPriority.High);
                FakeSnapshotEventGenerator.SetEvents(new[] { expectedEvent });

                while (ClientMock.GetMessages().Count == 0)
                {
                    ;
                }
                VerifySnapshot(ClientMock.GetMessages(), new[] { expectedEvent });
                ClientMock.Reset();
                var expectedSecondEvent = FakesEventsFactory.CreateFakePeriodicEvent(EventPriority.High);
                FakeSnapshotEventGenerator.SetEvents(new[] { expectedSecondEvent });

                Thread.Sleep(snapshotInterval + AgentConfiguration.RemoteConfiguration.HighPriorityMessageFrequency);

                VerifySnapshot(ClientMock.GetMessages(), new[] { expectedSecondEvent });
            }
        }
Beispiel #2
0
 static void Main(string[] args)
 {
     using (SingleThreadedAgent agent = new SingleThreadedAgent())
     {
         agent.Start();
     }
 }