public async Task SavingAndLoading_ShouldProduceTheSameCheckSum()
{
var subject1 = CreateSubject();
await subject1.SaveAsync(LedgerBookTestData.TestData2(), "Foo2.xml", false);
var serialisedData = subject1.SerialisedData;
Debug.WriteLine("Saved / Serialised Xml:");
Debug.WriteLine(serialisedData);
LedgerBookDto bookDto;
var subject2 = CreateSubject();
subject2.FileExistsOverride = f => true;
subject2.LoadXamlFromDiskFromEmbeddedResources = false;
this.mockReaderWriter.Setup(m => m.LoadFromDiskAsync(It.IsAny<string>())).ReturnsAsync(serialisedData);
await subject2.LoadAsync("foo", false);
bookDto = subject2.LedgerBookDto;
int checksumPosition = serialisedData.IndexOf("CheckSum=\"", StringComparison.OrdinalIgnoreCase);
int checksumLength = serialisedData.IndexOf('"', checksumPosition + 11) - checksumPosition;
string serialisedCheckSum = serialisedData.Substring(checksumPosition + 10, checksumLength - 10);
Assert.AreEqual(double.Parse(serialisedCheckSum), bookDto.Checksum);
}