public void TestUpdateStatsSnapshotCount()
        {
            //
            //Arrange
            //
            var streamStatsActorRef =
                ActorOfAsTestActorRef <StreamStatsActor>(
                    Props.Create(() => new StreamStatsActor()),
                    StreamStatsActor.ActorName);
            var dateNow             = DateTime.UtcNow;
            var updateStatsStartMsg =
                new UpdateStatsStartMsg
            {
                UpdateReceivedAt = dateNow,
                Sequence         = 1,
                IsSnapshot       = true,
                Fixture          = new Fixture
                {
                    Id          = "Fixture1Id",
                    Sequence    = 1,
                    Epoch       = 1,
                    MatchStatus = MatchStatus.Prematch.ToString()
                }
            };
            var updateStatsFinishMsg =
                new UpdateStatsFinishMsg
            {
                CompletedAt = dateNow.AddMilliseconds(1500)
            };

            //
            //Act
            //
            streamStatsActorRef.Tell(updateStatsStartMsg);
            Task.Delay(TimeSpan.FromMilliseconds(500));
            streamStatsActorRef.Tell(updateStatsFinishMsg);
            Task.Delay(TimeSpan.FromMilliseconds(500));
            streamStatsActorRef.Tell(updateStatsStartMsg);
            Task.Delay(TimeSpan.FromMilliseconds(500));
            streamStatsActorRef.Tell(updateStatsFinishMsg);

            //
            //Assert
            //
            AwaitAssert(() =>
            {
                Assert.AreEqual(2, streamStatsActorRef.UnderlyingActor.SnapshotsCount);
                Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.StreamUpdatesCount);
                Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.DisconnectionsCount);
                Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.ErrorsCount[StreamStatsActor.PluginExceptionType]);
                Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.ErrorsCount[StreamStatsActor.ApiExceptionType]);
                Assert.AreEqual(0, streamStatsActorRef.UnderlyingActor.ErrorsCount[StreamStatsActor.GenericExceptionType]);
                Assert.AreEqual(DateTime.MinValue, streamStatsActorRef.UnderlyingActor.LastDisconnectedDate);
            },
                        TimeSpan.FromMilliseconds(ASSERT_WAIT_TIMEOUT),
                        TimeSpan.FromMilliseconds(ASSERT_EXEC_INTERVAL));
        }
Ejemplo n.º 2
0
 private void UpdateStatsStartMsgHandler(UpdateStatsStartMsg msg)
 {
     _startMessagesStack.Push(msg);
 }