コード例 #1
0
        public virtual void JsonLdFramingTests(string testId, JsonLdTestType testType, string inputPath, string framePath,
                                               string expectedOutputPath, JsonLdErrorCode expectErrorCode, string processingMode,
                                               bool pruneBlankNodeIdentifiers, bool?omitGraph, bool ordered)
        {
            var inputJson            = File.ReadAllText(inputPath);
            var frameJson            = File.ReadAllText(framePath);
            var jsonLdProcessingMode = "json-ld-1.0".Equals(processingMode)
                ? JsonLdProcessingMode.JsonLd10
                : JsonLdProcessingMode.JsonLd11FrameExpansion;
            var options = new JsonLdProcessorOptions
            {
                ProcessingMode            = jsonLdProcessingMode,
                PruneBlankNodeIdentifiers = pruneBlankNodeIdentifiers,
                Ordered = ordered,
            };

            if (omitGraph.HasValue)
            {
                options.OmitGraph = omitGraph.Value;
            }
            var inputElement = JToken.Parse(inputJson);
            var frameElement = JToken.Parse(frameJson);

            switch (testType)
            {
            case JsonLdTestType.PositiveEvaluationTest:
                var expectedOutputJson    = File.ReadAllText(expectedOutputPath);
                var expectedOutputElement = JToken.Parse(expectedOutputJson);
                var actualOutput          = JsonLdProcessor.Frame(inputElement, frameElement, options);
                Assert.True(DeepEquals(expectedOutputElement, actualOutput),
                            $"Test failed for input {Path.GetFileName(inputPath)}\nExpected:\n{expectedOutputElement}\nActual:\n{actualOutput}");
                break;

            case JsonLdTestType.NegativeEvaluationTest:
                var exception = Assert.ThrowsAny <JsonLdProcessorException>(() =>
                                                                            JsonLdProcessor.Frame(inputElement, frameElement, options));
                Assert.Equal(expectErrorCode, exception.ErrorCode);
                break;

            case JsonLdTestType.PositiveSyntaxTest:
                JsonLdProcessor.Frame(inputElement, frameElement, options);
                break;

            case JsonLdTestType.NegativeSyntaxTest:
                Assert.ThrowsAny <JsonLdProcessorException>(() =>
                                                            JsonLdProcessor.Frame(inputElement, frameElement, options));
                break;
            }
        }
コード例 #2
0
        public void JsonLdFramingTests(string inputPath, string framePath, string expectedOutputPath,
                                       bool pruneBlankNodeIdentifiers)
        {
            var inputJson          = File.ReadAllText(inputPath);
            var frameJson          = File.ReadAllText(framePath);
            var expectedOutputJson = File.ReadAllText(expectedOutputPath);
            var options            = new JsonLdProcessorOptions {
                PruneBlankNodeIdentifiers = pruneBlankNodeIdentifiers
            };
            var inputElement          = JToken.Parse(inputJson);
            var frameElement          = JToken.Parse(frameJson);
            var expectedOutputElement = JToken.Parse(expectedOutputJson);
            var actualOutput          = JsonLdProcessor.Frame(inputElement, frameElement, options);

            Assert.True(JToken.DeepEquals(expectedOutputElement, actualOutput),
                        $"Test failed for input {Path.GetFileName(inputPath)}\nExpected:\n{expectedOutputElement}\nActual:\n{actualOutput}");
        }