public void Load_ShouldLoadInputMappingFromFile(LoadTestCase testCase) { // Arrange const string filePath = "input mapping file path"; var assetInfo = new AssetInfo(AssetId.CreateUnique(), InputAssetTypes.InputMapping, filePath); var assetData = AssetData.CreateWithJsonContent(assetInfo.AssetId, assetInfo.AssetType, testCase.InputMappingAssetContent); using var memoryStream = new MemoryStream(); assetData.Save(memoryStream); memoryStream.Position = 0; var file = Substitute.For <IFile>(); file.OpenRead().Returns(memoryStream); _fileSystem.GetFile(filePath).Returns(file); var inputMappingAssetLoader = new InputMappingAssetLoader(_fileSystem); // Act var actual = (InputMapping)inputMappingAssetLoader.LoadAsset(assetInfo, _assetStore); // Assert testCase.Assert(actual); }
public void LoadAsset_ThrowsException_WhenFileContentIsInvalid(LoadThrowsExceptionTestCase testCase) { // Arrange const string assetFilePath = "input mapping file path"; var assetInfo = new AssetInfo(AssetId.CreateUnique(), InputAssetTypes.InputMapping, assetFilePath); var assetData = AssetData.CreateWithJsonContent(assetInfo.AssetId, assetInfo.AssetType, testCase.InputMappingAssetContent); using var memoryStream = new MemoryStream(); assetData.Save(memoryStream); memoryStream.Position = 0; var file = Substitute.For <IFile>(); file.OpenRead().Returns(memoryStream); _fileSystem.GetFile(assetFilePath).Returns(file); var inputMappingAssetLoader = new InputMappingAssetLoader(_fileSystem); // Act // Assert Assert.That(() => inputMappingAssetLoader.LoadAsset(assetInfo, _assetStore), Throws.TypeOf <InvalidInputMappingAssetContentException>()); }