public async Task CatchupReplicationDiffEnumerator_MoveNext_Future_False()
        {
            Http.HttpHandler.Default = new ReplicationServerMockHttpHandler();
            var enumerator = new CatchupReplicationDiffEnumerator(
                new DateTime(2020, 01, 01));

            Assert.False(await enumerator.MoveNext());
        }
Exemple #2
0
        static async Task Main(string[] args)
        {
            // enable logging.
            Logger.LogAction = (origin, level, message, parameters) =>
            {
                var formattedMessage = $"{origin} - {message}";
                switch (level)
                {
                case "critical":
                    Log.Fatal(formattedMessage);
                    break;

                case "error":
                    Log.Error(formattedMessage);
                    break;

                case "warning":
                    Log.Warning(formattedMessage);
                    break;

                case "verbose":
                    Log.Verbose(formattedMessage);
                    break;

                case "information":
                    Log.Information(formattedMessage);
                    break;

                default:
                    Log.Debug(formattedMessage);
                    break;
                }
            };

            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Verbose()
                         .WriteTo.Console()
                         .CreateLogger();

            var thePast           = DateTime.Now.AddHours(-2).AddDays(-5);
            var catchupEnumerator = new CatchupReplicationDiffEnumerator(thePast);

            while (await catchupEnumerator.MoveNext())
            {
                var current = catchupEnumerator.State;

                Log.Information($"State: {current}");
            }
        }
        public async Task CatchupReplicationDiffEnumerator_MoveNext_FirstMinuteThenHourThenDayThenHourThenMinute()
        {
            Http.HttpHandler.Default = new ReplicationServerMockHttpHandler();
            var enumerator = new CatchupReplicationDiffEnumerator(
                new DateTime(2019, 09, 22, 20, 55, 0, DateTimeKind.Utc));

            // first minutes will happen.
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3683288, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3683289, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3683290, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3683291, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3683292, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3683293, enumerator.State.SequenceNumber);

            // then hours will happen.
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61599, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61600, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61601, enumerator.State.SequenceNumber);

            // then days will happen.
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(2568, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(2569, enumerator.State.SequenceNumber);

            // then hours again.
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61650, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61651, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61652, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61653, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61654, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61655, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61656, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61657, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61658, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61659, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61660, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61661, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61662, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(61663, enumerator.State.SequenceNumber);

            // then minutes again.
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3687190, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3687191, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3687192, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3687193, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3687194, enumerator.State.SequenceNumber);
            Assert.True(await enumerator.MoveNext());
            Assert.Equal(3687195, enumerator.State.SequenceNumber);
            Assert.False(await enumerator.MoveNext());
        }