Exemplo n.º 1
0
        public void RemoveTimeoutByIdOnEmptyTimeoutCollection(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData)
        {
            factory.ResetTimeoutCollection();

            sut.RemoveTimeoutBy(timeoutData.SagaId);

            factory.RetrieveAllTimeouts().Should().HaveCount(0);
        }
Exemplo n.º 2
0
        public void AddOneTimeout(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeoutData);

            var result = factory.RetrieveAllTimeouts();

            result.Should().HaveCount(1);
        }
        public void GetNextChunkReturnsEmptyListWhenCollectionDoesNotExist(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory)
        {
            factory.ResetTimeoutCollection();

            var startSlice = DateTime.UtcNow.AddMinutes(-5);
            var result     = sut.GetNextChunk(startSlice).Result;

            result.DueTimeouts.Should().BeEmpty();
            result.NextTimeToQuery.Should()
            .BeOnOrAfter(startSlice.AddMinutes(MongoPersistenceConstants.DefaultNextTimeoutIncrementMinutes));
        }
Exemplo n.º 4
0
        public void RemoveTimeoutByIdOnNonExistantIdDoesNotRemoveOtherTimeout(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeoutData);

            sut.RemoveTimeoutBy(Guid.NewGuid());

            factory.RetrieveAllTimeouts().Should().HaveCount(1);
        }
        public void TryRemoveEmptyTimeoutCollectionShouldReturnFalseAndNullData(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            string timeoutId,
            ContextBag context)
        {
            factory.ResetTimeoutCollection();

            var result = sut.TryRemove(timeoutId, context).Result;

            result.Should().BeFalse();
            factory.RetrieveAllTimeouts().Should().HaveCount(0);
        }
        public void RemoveTimeoutByIdRemovesTimeout(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData,
            ContextBag context)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeoutData, context).Wait();

            sut.RemoveTimeoutBy(timeoutData.SagaId, context).Wait();

            factory.RetrieveAllTimeouts().Should().HaveCount(0);
        }
        public void PeekExistingTimeout(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeout1,
            ContextBag context)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeout1, context).Wait();
            var result = factory.RetrieveAllTimeouts().First();

            var peeked = sut.Peek(result.Id, context).Result;

            peeked.SagaId.Should().Be(timeout1.SagaId);
        }
Exemplo n.º 8
0
        public void TryRemoveEmptyTimeoutCollectionShouldReturnFalseAndNullData(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            string timeoutId)
        {
            factory.ResetTimeoutCollection();

            Timeout.Core.TimeoutData timeoutData;

            var result = sut.TryRemove(timeoutId, out timeoutData);

            result.Should().BeFalse();
            timeoutData.Should().BeNull();

            factory.RetrieveAllTimeouts().Should().HaveCount(0);
        }
        public void AddTwoDifferentTimeouts(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeout1,
            Timeout.Core.TimeoutData timeout2,
            ContextBag context)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeout1, context).Wait();
            sut.Add(timeout2, context).Wait();

            var result = factory.RetrieveAllTimeouts();

            result.Should().HaveCount(2);
        }
        public void TryRemoveShouldSucceedAndReturnData(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData,
            ContextBag context)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeoutData, context).Wait();

            var timeouts = factory.RetrieveAllTimeouts();

            var result = sut.TryRemove(timeouts.First().Id, context).Result;

            result.Should().BeTrue();
            factory.RetrieveAllTimeouts().Should().HaveCount(0);
        }
Exemplo n.º 11
0
        public void GetNextChunkReturnsOneTimeoutWhenCollectionHasOneTimeout(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData)
        {
            factory.ResetTimeoutCollection();

            timeoutData.Time = DateTime.UtcNow.AddMinutes(-1);
            sut.Add(timeoutData);

            var      startSlice = DateTime.UtcNow.AddMinutes(-5);
            DateTime nextTimeToRunQuery;
            var      result = sut.GetNextChunk(startSlice, out nextTimeToRunQuery);

            result.Should().HaveCount(1);
            nextTimeToRunQuery.Should().BeOnOrAfter(timeoutData.Time);
        }
        public void GetNextChunkReturnsOneTimeoutWhenCollectionHasOneTimeout(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData,
            ContextBag context)
        {
            factory.ResetTimeoutCollection();

            timeoutData.Time = DateTime.UtcNow.AddMinutes(-1);
            sut.Add(timeoutData, context).Wait();

            var startSlice = DateTime.UtcNow.AddMinutes(-5);
            var result     = sut.GetNextChunk(startSlice).Result;

            result.DueTimeouts.Should().HaveCount(1);
            result.NextTimeToQuery.Should().BeOnOrAfter(timeoutData.Time);
        }
Exemplo n.º 13
0
        public void RemoveTimeoutByIdRemovesCorrectTimeoutAndDoesNotRemoveOtherTimeout(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData1,
            Timeout.Core.TimeoutData timeoutData2)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeoutData1);
            sut.Add(timeoutData2);

            sut.RemoveTimeoutBy(timeoutData2.SagaId);

            var remainingTimeouts = factory.RetrieveAllTimeouts().ToList();

            remainingTimeouts.Should().HaveCount(1);

            remainingTimeouts.First().SagaId.Should().Be(timeoutData1.SagaId);
        }
Exemplo n.º 14
0
        public void TryRemoveShouldSucceedAndReturnData(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeoutData);
            Timeout.Core.TimeoutData returnedTimeoutData;

            var timeouts = factory.RetrieveAllTimeouts();

            var result = sut.TryRemove(timeouts.First().Id.ToString(), out returnedTimeoutData);

            result.Should().BeTrue();
            returnedTimeoutData.ShouldBeEquivalentTo(timeoutData);

            factory.RetrieveAllTimeouts().Should().HaveCount(0);
        }
        public void TryRemoveShouldSucceedAndReturnDataForOneTimeoutAndLeaveTheOther(
            MongoTimeoutPersister sut,
            MongoDatabaseFactory factory,
            Timeout.Core.TimeoutData timeoutData1,
            Timeout.Core.TimeoutData timeoutData2,
            ContextBag context)
        {
            factory.ResetTimeoutCollection();

            sut.Add(timeoutData1, context).Wait();
            sut.Add(timeoutData2, context).Wait();

            var timeouts = factory.RetrieveAllTimeouts();

            var result = sut.TryRemove(timeouts.First().Id, context).Result;

            result.Should().BeTrue();

            var remainingTimeout = factory.RetrieveAllTimeouts().ToList();

            remainingTimeout.Should().HaveCount(1);
            remainingTimeout.First().Id.Should().Be(timeouts.Last().Id);
        }
Exemplo n.º 16
0
 public void BasicMongoTimeoutPersisterConstruction(MongoDatabaseFactory factory)
 {
     var sut = new MongoTimeoutPersister(factory);
 }
        public void BasicMongoTimeoutPersisterConstruction(MongoDatabaseFactory factory)
        {
            var sut = new MongoTimeoutPersister(factory, "UnitTests");

            sut.Should().NotBeNull();
        }