public void Test()
        {
            var id = Guid.NewGuid();
            var createCommand = new CreateGameBoardCommand
            {
                FriendlyName = "Transformers",
                MinimumNumberOfPlayers = 4,
                MaximumNumberOfPlayers = 16,
                MaxValidStartDate = new DateTime(2015, 02, 01)
            };

            var aggregate = new GameBoardAggregateRoot(id, createCommand.DehydrateCommand());
            domainRepository.Save(aggregate);

            var savedAggregate = domainRepository.GetById<GameBoardAggregateRoot>(id);

            //ACT
            var result = sut.Create(savedAggregate);

            //ASSERT
            Assert.That(result.Version, Is.EqualTo(1));

            var json = JsonConvert.DeserializeObject<IDictionary<string, object>>(result.JsonSerialization);
            Assert.That(json.ContainsKey("ActualNumberOfPlayers"));
            Assert.That(json.ContainsKey("MinimumNumberOfPlayers"));
            Assert.That(json.ContainsKey("MaximumNumberOfPlayers"));
            Assert.That(json.ContainsKey("StartDate"));

            Assert.That(json["ActualNumberOfPlayers"], Is.EqualTo(0));
            Assert.That(json["MinimumNumberOfPlayers"], Is.EqualTo(4));
            Assert.That(json["MaximumNumberOfPlayers"], Is.EqualTo(16));
            Assert.That(json["StartDate"], Is.EqualTo(new DateTime(2015, 02, 01)));

            Assert.That(json.Keys.Count, Is.EqualTo(4));
        }
        public void Recreate_v2_typeChanged_From_V1_Snapshot()
        {
            var id = Guid.NewGuid();
            var createCommand = new CreateGameBoardCommand
            {
                FriendlyName = "Transformers",
                MinimumNumberOfPlayers = 4,
                MaximumNumberOfPlayers = 16,
                MaxValidStartDate = new DateTime(2015, 02, 01)
            };

            var aggregate = new GameBoardAggregateRoot(id, createCommand.DehydrateCommand());
            domainRepository.Save(aggregate);

            var savedAggregate = domainRepository.GetById<GameBoardAggregateRoot>(id);

            var snapshot = sut.Create(savedAggregate);

            Exception receivedException = null;
            try
            {
                sut.Get<GameBoardAggregateRoot_V2TypeChanged>(snapshot);
            }
            catch (Exception exception)
            {
                receivedException = exception;
            }

            Assert.That(receivedException, Is.Not.Null);
        }