private async Task AddAttachmentAndCheck(IStorage storage, string recordKey, Stream memoryStream, string fileName, string mimeType, string expectedFileName, string expectedMimeType, string expectedText) { var writtenMeta = await storage .AddAttachmentAsync(_country, recordKey, memoryStream, fileName, mimeType) .ConfigureAwait(false); CheckAttachment(writtenMeta, expectedFileName, expectedMimeType); var record = await storage.ReadAsync(_country, recordKey).ConfigureAwait(false); var metaFromRecord = record.Attachments.Find(one => string.Equals(expectedFileName, one.Filename, StringComparison.InvariantCulture)); Assert.AreEqual(writtenMeta, metaFromRecord); var readMeta = await storage.GetAttachmentMetaAsync(_country, recordKey, writtenMeta.FileId) .ConfigureAwait(false); Assert.AreEqual(writtenMeta, readMeta); var attachment = await storage.GetAttachmentFileAsync(_country, recordKey, writtenMeta.FileId) .ConfigureAwait(false); Assert.NotNull(attachment); Assert.AreEqual(writtenMeta.Filename, attachment.Filename); using var reader = new StreamReader(attachment.FileContent); var readTextFromFile = await reader.ReadToEndAsync().ConfigureAwait(false); Assert.AreEqual(expectedText, readTextFromFile); }