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);
        }