private async Task <CodeFileEntity> StoreEntityAsync(CodeFileEntity entity) { var operation = TableOperation.InsertOrReplace(entity); var result = await _codeFileTable.ExecuteAsync(operation); return((CodeFileEntity)result.Result); }
public async Task <CodeFile> StoreAsync(CodeFile file) { var entity = new CodeFileEntity { PartitionKey = ConstructPartitionKey(file.FilePath), RowKey = EntityRowKey, Path = file.FilePath, CodeFragments = JsonConvert.SerializeObject(file.CodeFragments) }; var storedEntity = await StoreEntityAsync(entity); return(new CodeFile { FilePath = storedEntity.Path, CodeFragments = JsonConvert.DeserializeObject <List <CodeFragment> >(storedEntity.CodeFragments) }); }
public async Task ArchiveAsync_ArchiveCodeFileEntity_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 } }; var archivedCodeFileEntity = new CodeFileEntity { IsArchived = true, CodeFragments = codeFragmentsJson }; _codeFileTable .ExecuteAsync(TableOperation.InsertOrReplace(archivedCodeFileEntity)) .Returns(new TableResult { Result = new CodeFileEntity { IsArchived = true, CodeFragments = codeFragmentsJson, } }); _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.ArchiveAsync(TestFilePath); // Assert Assert.That(actualResult, Is.EqualTo(expectedResult).UsingCodeFileComparer()); }