public async Task ProjectionReaderTest()
        {
            var setup = GetService <EventStoreSetup>();
            var store = GetService <IEventStore>();
            var proj  = GetService <IProjectionReader>();

            var name  = $"tests{Guid.NewGuid().ToString().Replace("-", "")}";
            var query = TestFiles.GetFileContent("FakeCounterProjection.js");

            await setup.AddOpsUserToAdminsAsync();

            if (!await setup.CheckProjectionIsRunningAsync("$by_category"))
            {
                await setup.EnableProjectionAsync("$by_category");
            }
            (await setup.CheckProjectionIsRunningAsync("$by_category")).Should().BeTrue();


            await setup.CreateContinousProjectionAsync(name, query);

            (await setup.CheckContinousProjectionIsCreatedAsync(name, query)).Should().BeTrue();
            (await setup.CheckProjectionIsRunningAsync(name)).Should().BeTrue();

            var save = FakeEvent.CreateList(155).ToArray();

            store.SaveEventsAsync <FakeAggregate>(save.First().AggregateId, save, 154).Wait();
            await Task.Delay(1500);

            var result = await proj.GetStateAsync <X1>(name, save.First().AggregateId.Replace("-", ""));

            result.Should().NotBeNull();
            result.Ids.Length.Should().Be(save.Length);
        }
Пример #2
0
        public async Task CanUpdateContinousProjectionTest()
        {
            var setup = CreateSetup();

            var name  = $"tests{Guid.NewGuid().ToString().Replace("-", "")}";
            var query = TestFiles.GetFileContent("TestSubscription.js");

            if (await setup.CheckContinousProjectionIsCreatedAsync(name, query))
            {
                throw new InvalidOperationException($"Please remove projection {name}");
            }

            //erstes erstellen
            await setup.CreateContinousProjectionAsync(name, query);

            (await setup.CheckContinousProjectionIsCreatedAsync(name, query)).Should().BeTrue();

            (await setup.CheckProjectionIsRunningAsync(name)).Should().BeTrue();

            //neu laden und updaten
            query = TestFiles.GetFileContent("TestSubscription1.js");
            (await setup.CheckContinousProjectionIsCreatedAsync(name, query)).Should().BeFalse();

            await setup.CreateContinousProjectionAsync(name, query);

            (await setup.CheckContinousProjectionIsCreatedAsync(name, query)).Should().BeTrue();

            (await setup.CheckProjectionIsRunningAsync(name)).Should().BeTrue();
        }
        public async Task ProjectionReaderTest2()
        {
            var setup = GetService <EventStoreSetup>();
            var store = GetService <IEventStore>();
            var proj  = GetService <IEventStoreReader>();

            var prov = GetService <EventStoreConnectionProvider>();
            await prov.InitializeAsync(CancellationToken.None);

            var name  = $"tests{Guid.NewGuid().ToString().Replace("-", "")}";
            var query = TestFiles.GetFileContent("FakeCounterProjection.js");

            await setup.AddOpsUserToAdminsAsync();

            if (!await setup.CheckProjectionIsRunningAsync("$by_category"))
            {
                await setup.EnableProjectionAsync("$by_category");
            }
            (await setup.CheckProjectionIsRunningAsync("$by_category")).Should().BeTrue();


            await setup.CreateContinousProjectionAsync(name, query);

            (await setup.CheckContinousProjectionIsCreatedAsync(name, query)).Should().BeTrue();
            (await setup.CheckProjectionIsRunningAsync(name)).Should().BeTrue();

            var save = FakeEvent.CreateList(155).ToArray();
            await store.SaveEventsAsync <FakeAggregate>(save.First().AggregateId, save, 154);

            await Task.Delay(1500);

            var definition = new
            {
                Ids = new string[0]
            };

            var result = await proj.GetProjectionStateAsyncAnonymousType(name, definition, save.First().AggregateId.Replace("-", ""));

            result.Should().NotBeNull();
            result.Ids.Length.Should().Be(save.Length);
        }