コード例 #1
0
        public async Task Can_get_stream_message_count_with_created_before_date()
        {
            using (var fixture = new MsSqlStreamStoreV3Fixture("dbo"))
            {
                using (var store = await fixture.GetMsSqlStreamStore())
                {
                    fixture.GetUtcNow = () => new DateTime(2016, 1, 1, 0, 0, 0);

                    var streamId = "stream-1";
                    await store.AppendToStream(
                        streamId,
                        ExpectedVersion.NoStream,
                        CreateNewStreamMessages(1, 2, 3));

                    fixture.GetUtcNow = () => new DateTime(2016, 1, 1, 0, 1, 0);

                    await store.AppendToStream(
                        streamId,
                        ExpectedVersion.Any,
                        CreateNewStreamMessages(4, 5, 6));

                    var streamCount = await store.GetMessageCount(streamId, new DateTime(2016, 1, 1, 0, 1, 0));

                    streamCount.ShouldBe(3); // The first 3
                }
            }
        }
コード例 #2
0
 public async Task Can_drop_all()
 {
     using (var fixture = new MsSqlStreamStoreV3Fixture("dbo"))
     {
         using (var store = await fixture.GetMsSqlStreamStore())
         {
             await store.DropAll();
         }
     }
 }
コード例 #3
0
        public async Task Can_call_initialize_repeatably(string schema)
        {
            using (var fixture = new MsSqlStreamStoreV3Fixture(schema))
            {
                using (var store = await fixture.GetMsSqlStreamStore())
                {
                    await store.CreateSchema();

                    await store.CreateSchema();
                }
            }
        }
コード例 #4
0
        public async Task Can_check_schema()
        {
            using (var fixture = new MsSqlStreamStoreV3Fixture("dbo"))
            {
                using (var store = await fixture.GetMsSqlStreamStore())
                {
                    var result = await store.CheckSchema();

                    result.ExpectedVersion.ShouldBe(3);
                    result.CurrentVersion.ShouldBe(3);
                    result.IsMatch().ShouldBeTrue();
                }
            }
        }
コード例 #5
0
        public async Task Can_migrate()
        {
            // Set up an old schema + data.
            var schema    = "baz";
            var v2Fixture = new MsSqlStreamStoreFixture(schema, deleteDatabaseOnDispose: false);
            var v2Store   = await v2Fixture.GetMsSqlStreamStore();

            await v2Store.AppendToStream("stream-1",
                                         ExpectedVersion.NoStream,
                                         StreamStoreAcceptanceTests.CreateNewStreamMessages(1, 2, 3));

            await v2Store.AppendToStream("stream-2",
                                         ExpectedVersion.NoStream,
                                         StreamStoreAcceptanceTests.CreateNewStreamMessages(1, 2, 3));

            await v2Store.SetStreamMetadata("stream-1", ExpectedVersion.Any, maxAge : 10, maxCount : 20);

            v2Store.Dispose();
            v2Fixture.Dispose();

            // Migrate with V3 schema.
            var v3Fixture = new MsSqlStreamStoreV3Fixture(schema, databaseNameOverride: v2Fixture.DatabaseName);
            var v3Store   = await v3Fixture.GetMsSqlStreamStore();

            var checkSchemaResult = await v3Store.CheckSchema();

            checkSchemaResult.IsMatch().ShouldBeFalse();

            await v3Store.Migrate(CancellationToken.None);

            checkSchemaResult = await v3Store.CheckSchema();

            checkSchemaResult.IsMatch().ShouldBeTrue();

            v3Store.Dispose();
            v3Fixture.Dispose();
        }