public async Task LoadAndSaveTwoVersions()
        {
            var versionRepository = new VersionRepository(MongoClient);

            await versionRepository.SaveLastVersion <IntegrationTestBase>("123");

            await versionRepository.SaveLastVersion <VersionRepoTest>("456");

            var version1 = await versionRepository.GetLastVersion <IntegrationTestBase>();

            var version2 = await versionRepository.GetLastVersion <VersionRepoTest>();

            Assert.AreEqual("123", version1.Version);
            Assert.AreEqual("456", version2.Version);
        }
        public async Task LoadEmpty()
        {
            var versionRepository = new VersionRepository(MongoClient);

            var version = await versionRepository.GetLastVersion <IntegrationTestBase>();

            Assert.AreEqual("000000000000000000000000", version.Version);
        }
        public async Task SaveTwice()
        {
            var versionRepository = new VersionRepository(MongoClient);

            await versionRepository.SaveLastVersion <IntegrationTestBase>("123");

            await versionRepository.SaveLastVersion <IntegrationTestBase>("1234");

            var version = await versionRepository.GetLastVersion <IntegrationTestBase>();

            Assert.AreEqual("1234", version.Version);
        }
Ejemplo n.º 4
0
        public async Task TestThatNewVersionIsUpdated()
        {
            var fakeEvent1 = TestDtoHelper.CreateFakeEvent();
            var fakeEvent2 = TestDtoHelper.CreateFakeEvent();
            var fakeEvent3 = TestDtoHelper.CreateFakeEvent();
            var fakeEvent4 = TestDtoHelper.CreateFakeEvent();
            var fakeEvent5 = TestDtoHelper.CreateFakeEvent();

            fakeEvent1.match.season    = 0;
            fakeEvent1.match.startTime = 5000;
            fakeEvent1.Id              = ObjectId.GenerateNewId();
            fakeEvent2.match.season    = 0;
            fakeEvent2.match.startTime = 4000;
            fakeEvent2.Id              = ObjectId.GenerateNewId();
            fakeEvent3.match.season    = 1;
            fakeEvent3.match.startTime = 3000;
            fakeEvent3.Id              = ObjectId.GenerateNewId();
            fakeEvent4.match.season    = 1;
            fakeEvent4.match.startTime = 2000;
            fakeEvent4.match.id        = "Test";
            fakeEvent4.Id              = ObjectId.GenerateNewId();
            fakeEvent5.match.season    = 0;
            fakeEvent5.match.startTime = 1000;
            fakeEvent5.Id              = ObjectId.GenerateNewId();

            await InsertMatchEvents(new List <MatchFinishedEvent> {
                fakeEvent1, fakeEvent2, fakeEvent3, fakeEvent4, fakeEvent5
            });

            var matchRepository   = new MatchRepository(MongoClient, new OngoingMatchesCache(MongoClient));
            var versionRepository = new VersionRepository(MongoClient);

            var handler = new ReadModelHandler <MatchReadModelHandler>(
                new MatchEventRepository(MongoClient),
                versionRepository,
                new MatchReadModelHandler(matchRepository));

            await handler.Update();

            var version = await versionRepository.GetLastVersion <MatchReadModelHandler>();

            var matches = await matchRepository.Load();

            Assert.AreEqual(1, version.Season);
            Assert.AreEqual(fakeEvent5.Id.ToString(), version.Version);
            Assert.AreEqual(4, matches.Count);
            Assert.AreEqual(fakeEvent4.match.id, matches[0].MatchId);
            Assert.AreEqual(fakeEvent4.Id, matches[0].Id);
        }