public void Upcast_of_single_event()
        {
            var evt         = new UpcastedEvent("Hello world");
            var upcaster    = new UpcastedEvent.Upcaster();
            var evtUpcasted = upcaster.Upcast(evt);

            Assert.That(evtUpcasted.RenamedProperty, Is.EqualTo("Hello world"));
        }
        public void Simple_Upcast_of_single_event()
        {
            StaticUpcaster.Clear();
            StaticUpcaster.RegisterUpcaster(new UpcastedEvent.Upcaster());
            var evt      = new UpcastedEvent("Hello world");
            var upcasted = StaticUpcaster.UpcastEvent(evt);

            Assert.That(upcasted, Is.InstanceOf <NewEvent>());

            var upcastedEvent = (NewEvent)upcasted;

            Assert.That(upcastedEvent.RenamedProperty, Is.EqualTo("Hello world"));
        }
        public void Upcast_of_single_event_copy_all_properties()
        {
            var evt = new UpcastedEvent("Hello world")
                      .AssignIdForTest(new UpcastClassTestId(1));

            evt.SetPropertyValue(e => e.CommitId, Guid.NewGuid().ToString());
            evt.SetPropertyValue(e => e.Version, 42L);
            evt.SetPropertyValue(e => e.CheckpointToken, 42L);
            evt.SetPropertyValue(e => e.Context, new Dictionary <String, Object>()
            {
                ["truth"] = 42,
                [ChangesetCommonHeaders.Timestamp] = DateTime.UtcNow,
            });

            var upcaster    = new UpcastedEvent.Upcaster();
            var evtUpcasted = upcaster.Upcast(evt);

            Assert.That(evtUpcasted.CommitId, Is.EqualTo(evt.CommitId));
            Assert.That(evtUpcasted.CommitStamp, Is.EqualTo(evt.CommitStamp));
            Assert.That(evtUpcasted.Version, Is.EqualTo(evt.Version));
            Assert.That(evtUpcasted.CheckpointToken, Is.EqualTo(evt.CheckpointToken));
            Assert.That(evtUpcasted.Context["truth"], Is.EqualTo(42));
            Assert.That(evtUpcasted.AggregateId, Is.EqualTo(new UpcastClassTestId(1)));
        }