public void Adds_a_new_statistics_record_if_none_exists()
            {
                // Arrange
                var statsStub     = new FakeDbSet <Stats>();
                var readModelMock = new Mock <IFishLogReadModel>();

                readModelMock.Setup(m => m.Statistics).Returns(statsStub);

                var denormalizer = new StatisticsDenormalizer(readModelMock.Object);

                // Act
                denormalizer.Handle(new CatchLoggedEvent());

                // Assert
                Assert.That(statsStub.Any());
                Assert.That(statsStub.First().TotalCatches, Is.EqualTo(1));
                readModelMock.Verify(m => m.SaveChanges(), "No changes were saved.");
            }
            public void Updates_existing_statistics_record_if_one_exists()
            {
                // Arrange
                var statsStub = new FakeDbSet <Stats>();

                statsStub.Add(new Stats {
                    TotalCatches = 1
                });

                var readModelMock = new Mock <IFishLogReadModel>();

                readModelMock.Setup(m => m.Statistics).Returns(statsStub);

                var denormalizer = new StatisticsDenormalizer(readModelMock.Object);

                // Act
                denormalizer.Handle(new CatchLoggedEvent());

                // Assert
                Assert.That(statsStub.First().TotalCatches, Is.EqualTo(2), "The total number of catches was not incremented.");
                readModelMock.Verify(m => m.SaveChanges(), "No changes were saved.");
            }