public async Task StoreAsync_StoreCodeFile_ReturnsCorrectCodeFile()
        {
            // Arrange
            var codeFragmentsJson = @"[{
                ""Identifier"":""test_identifier"",
                ""Content"":""test content"",
                ""Language"":""c_"",
                ""Platform"":""_net"",
                ""Codename"":""test_identifier_net""
            }]";

            var expectedCodeFragment = new CodeFragment
            {
                Identifier = "test_identifier",
                Content    = "test content",
                Language   = "c_",
                Platform   = "_net",
            };

            var expectedResult = new CodeFile
            {
                FilePath      = TestFilePath,
                CodeFragments = new List <CodeFragment> {
                    expectedCodeFragment
                }
            };

            _codeFileTable
            .ExecuteAsync(Arg.Any <TableOperation>())
            .Returns(new TableResult
            {
                Result = new CodeFileEntity
                {
                    IsArchived    = false,
                    Path          = TestFilePath,
                    CodeFragments = codeFragmentsJson,
                }
            });

            var codeFileRepository = new CodeFileRepository(_codeFileTable);

            // Act
            var actualResult = await codeFileRepository.StoreAsync(expectedResult);

            // Assert
            Assert.That(actualResult, Is.EqualTo(expectedResult).UsingCodeFileComparer());
        }
        public async Task GetAsync_CodeFileEntityDoesNotExist_ReturnsNull()
        {
            // Arrange
            _codeFileTable
            .ExecuteAsync(Arg.Any <TableOperation>())
            .Returns(new TableResult {
                Result = null
            });

            var codeFileRepository = new CodeFileRepository(_codeFileTable);

            // Act
            var actualResult = await codeFileRepository.GetAsync(TestFilePath);

            // Assert
            Assert.AreEqual(null, actualResult);
        }
        public async Task ArchiveAsync_CodeFileEntityIsArchived_ReturnsNull()
        {
            // Arrange
            _codeFileTable
            .ExecuteAsync(Arg.Any <TableOperation>())
            .Returns(new TableResult {
                Result = new CodeFileEntity {
                    IsArchived = true
                }
            });

            var codeFileRepository = new CodeFileRepository(_codeFileTable);

            // Act
            var actualResult = await codeFileRepository.ArchiveAsync(TestFilePath);

            // Assert
            Assert.AreEqual(null, actualResult);
        }