public void DeserializeEventStreamShouldReturnAnEvent()
        {
            //Arrange
            var evt  = new EventStub(12);
            var json = @"{
                            'Id': '12',
                            'MediaFileId': '26443db2-1ca1-4f19-bd34-98654a61741c',
                            'AggregateId': '735f8407-16be-44b5-be96-2bab582b5298',
                            'EventId': 'b6c73140-684b-447c-b8fd-9c78c975dc38',
                            'AggregateVersion': 1,
                            'OcurrendOn': '2019-09-08T10:55:48.5529384Z'
                         }";
            Mock <IJsonProvider> moqJsonProvider = new Mock <IJsonProvider>();

            moqJsonProvider.Setup(m => m.DeserializeObject <EventStub>(It.IsAny <string>(),
                                                                       It.IsAny <string>())).Returns(evt);

            //Act
            IEventSerializer sut = new JsonEventSerializer(moqJsonProvider.Object);

            var result = sut.Deserialize <EventStub>(It.IsAny <string>(), json);

            //Assert
            Assert.Equal(evt, result);
        }
Esempio n. 2
0
        public InMemoryEventStoreTests()
        {
            var serializer = new JsonEventSerializer(JsonSerializer.CreateDefault());
            var settings   = new InMemoryEventStoreSettings(serializer);

            _store = new InMemoryEventStore(settings);
        }
Esempio n. 3
0
        public void ItThrowsWhenNull()
        {
            JsonEventSerializer sut = GetSut();

            SimpleEvent foo = null;

            Assert.Throws <ArgumentNullException>(() => sut.SerializeEvent(foo));
        }
Esempio n. 4
0
        public void WhenDataIsNotNullThenShouldSerializeWithExpectedValue()
        {
            var serializer = new JsonEventSerializer();

            var result = serializer.Serialize(new FakeEvent());

            result.Should().BeEquivalentTo(_json);
        }
        private static IEventSerializer CreateJsonSerializer(IEventNameMap eventNameMap)
        {
            var serializer = new JsonEventSerializer();

            serializer.RegisterEventTypeMappings(eventNameMap);

            return(serializer);
        }
Esempio n. 6
0
        public AccountTest()
        {
            _mockStore           = new InMemoryEventStore();
            _mockStoreConnection = _mockStore.Connect("Accounts");
            var eventSerializer = new JsonEventSerializer();

            _repo    = new StreamStoreRepository(new PrefixedCamelCaseStreamNameBuilder(), _mockStoreConnection, eventSerializer);
            _service = new AccountHandler(_repo);
        }
        public async Task <EventStoreWriter> GetSut()
        {
            IEventStoreConnection con = await LocalConfig.GetConnection();

            var serializer  = new JsonEventSerializer(new EventTypeResolver());
            var transformer = new EventTransformator(serializer);

            var sut = new EventStoreWriter(con, transformer);

            return(sut);
        }
Esempio n. 8
0
        public Program()
        {
            _bus = new SimpleBus();
//            _configuration = SqlLiteDatabase();
            _configuration   = SqlServerDatabase();
            _eventSerializer = new JsonEventSerializer();
            var query = new CustomerQuery(_configuration, _eventSerializer);

            _customerService = new CustomerService(_bus, query, SqliteSubscriber(_configuration));
            _bus.Register(new CustomerReadModelEventSubscriber(_configuration));
        }
        public void passthru_jobject()
        {
            var serializer = new JsonEventSerializer <JObject>();
            var obj        = new JObject {
                { "String", new JValue("Hello") }, { "Type", new JValue("StringEvent") }
            };
            var json = serializer.Serialize(obj);
            var obj2 = serializer.Deserialize(json);

            Assert.AreEqual("Hello", obj2.Property("String").ToObject <string>());
            Assert.AreEqual("StringEvent", obj2.Property("Type").ToObject <string>());
        }
        public void json_of_jobject()
        {
            var serializer = new JsonEventSerializer <JObject>();
            var obj        = new JObject {
                { "String", new JValue("Hello") }, { "Type", new JValue("StringEvent") }
            };
            var json = serializer.Serialize(obj);

            Assert.IsTrue(json.Length % 8 == 0);
            Assert.AreEqual(
                "{\"String\":\"Hello\",\"Type\":\"StringEvent\"} ",
                Encoding.ASCII.GetString(json));
        }
Esempio n. 11
0
        public void ShouldBeAbleToSerializerAndDeserialize()
        {
            var obj = ValidSimpleObject();

            var serializer = new JsonEventSerializer();
            var serial     = serializer.Serialize(obj);
            var actual     = (TestSimpleObject)serializer.Deserialize(obj.Type, serial);

            Assert.Equal(obj.StringType, actual.StringType);
            Assert.Equal(obj.TrueBoolean, actual.TrueBoolean);
            Assert.Equal(obj.FalseBoolean, actual.FalseBoolean);
            Assert.Equal(obj.Double, actual.Double);
            Assert.Equal(obj.Integer, actual.Integer);
        }
Esempio n. 12
0
        public static EventStoreContext CreateDefault(string prefix, IEventStoreConnection connection,
                                                      IDomainObjectActivator activator = null)
        {
            var namer           = new StreamTypeNamer(prefix);
            var eventSerializer = new JsonEventSerializer(new EventTypeResolver());
            var transformer     = new EventTransformator(eventSerializer);

            if (activator == null)
            {
                activator = new ActivatorDomainObjectActivator();
            }

            return(new EventStoreContext(connection, namer, new EventStoreReader(connection, transformer),
                                         new EventStoreWriter(connection, transformer), activator));
        }
Esempio n. 13
0
        public void ShouldSerializeLists()
        {
            var obj = new TestEventWithList(Guid.NewGuid().ToString())
            {
                ListOfObjects = new []
                {
                    ValidSimpleObject(), ValidSimpleObject()
                }
            };

            var serializer = new JsonEventSerializer();
            var serial     = serializer.Serialize(obj);
            var actual     = (TestEventWithList)serializer.Deserialize(obj.Type, serial);

            Assert.Equal(obj.ListOfObjects.Count(), actual.ListOfObjects.Count());
        }
        public async Task CreateWithNoStream()
        {
            var serializer = new JsonEventSerializer(JsonSerializer.CreateDefault());
            var settings   = new VerifiableEventStoreSettings(serializer);
            var eventStore = new VerifiableEventStore(settings);

            var aggregate = Goat.Create("g047");
            await aggregate.CommitAsync(eventStore);

            eventStore.VerifyAppendToStream(aggregate, ExpectedVersion.NoStream, verify => verify
                                            .Event(GoatCreated.EventType, e =>
            {
                Assert.Equal("g047", e.Name);
            })
                                            );
        }
Esempio n. 15
0
        public void ItSerializes()
        {
            JsonEventSerializer sut = GetSut();

            var @event = new SimpleEvent
            {
                Value = "Foo"
            };

            @event.Headers.Set("abc", "foo");

            string result = sut.SerializeEvent(@event);
            string header = sut.SerializeHeader(@event.Headers);

            IEvent second = sut.DeserializeEvent(header, result);

            string temp = second.Headers.GetString("abc");

            Assert.Equal("foo", temp);
            Assert.Equal("Foo", @event.Value);
        }
        public async Task SetupAggregate_VerifyAppendToStream()
        {
            var serializer = new JsonEventSerializer(JsonSerializer.CreateDefault());
            var settings   = new VerifiableEventStoreSettings(serializer);
            var eventStore = new VerifiableEventStore(settings);

            var aggregate = Goat.Create("g047");

            aggregate.Rename("goatl");
            await aggregate.CommitAsync(eventStore);

            eventStore.VerifyAppendToStream(aggregate, ExpectedVersion.NoStream, verify => verify
                                            .Event(GoatCreated.EventType, e =>
            {
                Assert.Equal("g047", e.Name);
            })
                                            .Event(GoatRenamed.EventType, e =>
            {
                Assert.Equal("goatl", e.Name);
            })
                                            );

            var streamVersion = eventStore.CurrentVersion(aggregate);

            var retrieved = await Goat.FromAsync(eventStore, aggregate.Id);

            retrieved.Rename("meh");
            await retrieved.CommitAsync(eventStore);

            eventStore.VerifyAppendToStream(aggregate, streamVersion, verify => verify
                                            .Event(GoatRenamed.EventType, e =>
            {
                Assert.Equal("meh", e.Name);
            })
                                            );
        }
Esempio n. 17
0
        public static async Task Main(string[] args)
        {
            var services = new ServiceCollection()
                           .AddLogging(lb => lb
                                       .SetMinimumLevel(LogLevel.Trace)
                                       .AddConsole()
                                       );

            await using var serviceProvider = services.BuildServiceProvider();

            var jsonSerializerSettings = new JsonSerializerSettings
            {
                ContractResolver = new DefaultContractResolver
                {
                    NamingStrategy = new SnakeCaseNamingStrategy()
                },
                Converters =
                {
                    new StringEnumConverter()
                }
            };

            var jsonSerializer = JsonSerializer.CreateDefault(jsonSerializerSettings);
            var serializer     = new JsonEventSerializer(jsonSerializer);
            // var serializer = new Aggregail.System.Text.Json.JsonEventSerializer(new JsonSerializerOptions());

            // using var connection = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113");
            // await connection.ConnectAsync();
            // var eventStore = new EventStore(connection, serializer);

            var mongoClient = new MongoClient("mongodb://*****:*****@mongodb-primary:27017,mongodb-secondary:27018,mongodb-arbiter:27019/aggregail_demo?authSource=admin&replicaSet=rs0");
            // var mongoClient = new MongoClient("mongodb://*****:*****@mongodb:27017/aggregail_demo?authSource=admin&replicaSet=rs0");
            var mongoDatabase = mongoClient.GetDatabase("aggregail_demo");

            var mongoSettings = new MongoEventStoreSettings(mongoDatabase, "streams", serializer);

            mongoSettings.Logger          = serviceProvider.GetRequiredService <ILogger <MongoEventStore> >();
            mongoSettings.MetadataFactory = new UserMetadataFactory("nije");

            var mongoStore = new MongoEventStore(mongoSettings);

            await mongoStore.InitializeAsync();

            var sw = new Stopwatch();

            sw.Start();
            Console.WriteLine("Running Test Case...");

            var inMemoryStore = new InMemoryEventStore(new InMemoryEventStoreSettings(serializer));

            var robotStore = new Robot.Store(mongoStore);
            await RobotProgram.RunAsync(robotStore);

            // var tasks = Enumerable.Range(0, 500)
            //     .Select(_ => TestCase(mongoStore))
            //     .ToArray();
            //
            // await Task.WhenAll(tasks);
            sw.Stop();

            Console.WriteLine($"Test Case Complete in {sw.Elapsed}");
        }
 static EventsRepositoryTests()
 {
     _eventSerializer = new JsonEventSerializer(new[] { typeof(DummyAggregate).Assembly });
 }
Esempio n. 19
0
        public JsonEventSerializerTests()
        {
            @event = new FakeEvent(Guid.NewGuid(), "A knight says Ni.");

            serializer = new JsonEventSerializer();
        }
Esempio n. 20
0
 static EventProducerTests()
 {
     _eventSerializer = new JsonEventSerializer(new[] { typeof(DummyAggregate).Assembly });
 }
 public void SetUp()
 {
     _serializer = new JsonEventSerializer <ISerializableEvent>();
 }