Convert old validity tests to a test project.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -28,3 +28,4 @@ _ReSharper*/
|
|||||||
*.userprefs
|
*.userprefs
|
||||||
*.nupkg
|
*.nupkg
|
||||||
/.vs/*
|
/.vs/*
|
||||||
|
/packages/*
|
||||||
|
|||||||
365
VAR.Json.Tests/JsonParser_Tests.cs
Normal file
365
VAR.Json.Tests/JsonParser_Tests.cs
Normal file
@@ -0,0 +1,365 @@
|
|||||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
||||||
|
namespace VAR.Json.Tests
|
||||||
|
{
|
||||||
|
[TestClass()]
|
||||||
|
public class JsonParser_Tests
|
||||||
|
{
|
||||||
|
#region Validity tests
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail01()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"""A JSON payload should be an object or array, not a string.""");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail02()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""Unclosed array""");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail03()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{unquoted_key: ""keys must be quoted""}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail04()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""extra comma"",]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail05()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""double extra comma"",,]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail06()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[ , ""<-- missing value""]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail07()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""Comma after the close""],");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail08()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""Extra close""]]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail09()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Extra comma"": true,}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail10()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Extra value after close"": true} ""misplaced quoted value""");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail11()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Illegal expression"": 1 + 2}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail12()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Illegal invocation"": alert()}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail13()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Numbers cannot have leading zeroes"": 013}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail14()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Numbers cannot be hex"": 0x14}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail15()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""Illegal backslash escape: \x15""]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail16()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[\naked]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail17()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""Illegal backslash escape: \017""]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail18()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[[[[[[[[[[[[[[[[[[[[""Too deep""]]]]]]]]]]]]]]]]]]]]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail19()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Missing colon"" null}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail20()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Double colon"":: null}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail21()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Comma instead of colon"", null}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail22()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""Colon instead of comma"": false]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail23()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""Bad value"", truth]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail24()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"['single quote']");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail25()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"["" tab character in string ""]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail26()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""tab\ character\ in\ string\ ""]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail27()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""line
|
||||||
|
break""]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail28()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""line\
|
||||||
|
break""]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail29()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[0e]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail30()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[0e+]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail31()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[0e+-1]");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail32()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{""Comma instead if closing brace"": true,");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Fail33()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[""mismatch""}");
|
||||||
|
Assert.AreEqual(true, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Pass01()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[
|
||||||
|
""JSON Test Pattern pass1"",
|
||||||
|
{""object with 1 member"":[""array with 1 element""]},
|
||||||
|
{},
|
||||||
|
[],
|
||||||
|
-42,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
""integer"": 1234567890,
|
||||||
|
""real"": -9876.543210,
|
||||||
|
""e"": 0.123456789e-12,
|
||||||
|
""E"": 1.234567890E+34,
|
||||||
|
"""": 23456789012E66,
|
||||||
|
""zero"": 0,
|
||||||
|
""one"": 1,
|
||||||
|
""space"": "" "",
|
||||||
|
""quote"": ""\"""",
|
||||||
|
""backslash"": ""\\"",
|
||||||
|
""controls"": ""\b\f\n\r\t"",
|
||||||
|
""slash"": ""/ & \/"",
|
||||||
|
""alpha"": ""abcdefghijklmnopqrstuvwyz"",
|
||||||
|
""ALPHA"": ""ABCDEFGHIJKLMNOPQRSTUVWYZ"",
|
||||||
|
""digit"": ""0123456789"",
|
||||||
|
""0123456789"": ""digit"",
|
||||||
|
""special"": ""`1~!@#$%^&*()_+-={':[,]}|;.</>?"",
|
||||||
|
""hex"": ""\u0123\u4567\u89AB\uCDEF\uabcd\uef4A"",
|
||||||
|
""true"": true,
|
||||||
|
""false"": false,
|
||||||
|
""null"": null,
|
||||||
|
""array"":[ ],
|
||||||
|
""object"":{ },
|
||||||
|
""address"": ""50 St. James Street"",
|
||||||
|
""url"": ""http://www.JSON.org/"",
|
||||||
|
""comment"": ""// /* <!-- --"",
|
||||||
|
""# -- --> */"": "" "",
|
||||||
|
"" s p a c e d "" :[1,2 , 3
|
||||||
|
|
||||||
|
,
|
||||||
|
|
||||||
|
4 , 5 , 6 ,7 ],""compact"":[1,2,3,4,5,6,7],
|
||||||
|
""jsontext"": ""{\""object with 1 member\"":[\""array with 1 element\""]}"",
|
||||||
|
""quotes"": """ \u0022 %22 0x22 034 """,
|
||||||
|
""\/\\\""\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?""
|
||||||
|
: ""A key can be any string""
|
||||||
|
},
|
||||||
|
0.5 ,98.6
|
||||||
|
,
|
||||||
|
99.44
|
||||||
|
,
|
||||||
|
|
||||||
|
1066,
|
||||||
|
1e1,
|
||||||
|
0.1e1,
|
||||||
|
1e-1,
|
||||||
|
1e00,2e+00,2e-00
|
||||||
|
,""rosebud""]");
|
||||||
|
Assert.AreEqual(false, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Pass02()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"[[[[[[[[[[[[[[[[[[[""Not too deep""]]]]]]]]]]]]]]]]]]]");
|
||||||
|
Assert.AreEqual(false, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod()]
|
||||||
|
public void Parse__Validity_Pass03()
|
||||||
|
{
|
||||||
|
JsonParser parser = new JsonParser();
|
||||||
|
object result = parser.Parse(@"{
|
||||||
|
""JSON Test Pattern pass3"": {
|
||||||
|
""The outermost value"": ""must be an object or array."",
|
||||||
|
""In this test"": ""It is an object.""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
");
|
||||||
|
Assert.AreEqual(false, parser.Tainted);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Validity tests
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,129 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace VAR.Json.Tests
|
|
||||||
{
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
static void Main(string[] args)
|
|
||||||
{
|
|
||||||
// http://www.json.org/JSON_checker/
|
|
||||||
|
|
||||||
string currentPath = System.Reflection.Assembly.GetEntryAssembly().Location;
|
|
||||||
currentPath = FindPath(currentPath, "tests");
|
|
||||||
|
|
||||||
// Test all files
|
|
||||||
string[] files;
|
|
||||||
files = Directory.GetFiles(currentPath, "*.json");
|
|
||||||
foreach (string file in files)
|
|
||||||
{
|
|
||||||
TestFile(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.Read();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void TestFile(string fileName)
|
|
||||||
{
|
|
||||||
string testName = Path.GetFileNameWithoutExtension(fileName);
|
|
||||||
string fileContent = File.ReadAllText(fileName, Encoding.UTF8);
|
|
||||||
if (testName.StartsWith("fail"))
|
|
||||||
{
|
|
||||||
TestFailCase(testName, fileContent);
|
|
||||||
}
|
|
||||||
if (testName.StartsWith("pass"))
|
|
||||||
{
|
|
||||||
TestPassCase(testName, fileContent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void TestFailCase(string testName, string fileContent)
|
|
||||||
{
|
|
||||||
JsonParser parser = new JsonParser();
|
|
||||||
object result;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
result = parser.Parse(fileContent);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
OutputFailure(testName, fileContent, ex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (parser.Tainted == false)
|
|
||||||
{
|
|
||||||
OutputFailure(testName, fileContent, result);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Console.Out.WriteLine("OK! {0}", testName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void TestPassCase(string testName, string fileContent)
|
|
||||||
{
|
|
||||||
JsonParser parser = new JsonParser();
|
|
||||||
object result;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
result = parser.Parse(fileContent);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
OutputFailure(testName, fileContent, ex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (parser.Tainted)
|
|
||||||
{
|
|
||||||
OutputFailure(testName, fileContent, result);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Console.Out.WriteLine("OK! {0}", testName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void OutputFailure(string testName, string fileContent, object obj)
|
|
||||||
{
|
|
||||||
Console.Out.WriteLine("Failure! {0}", testName);
|
|
||||||
Console.Out.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
|
||||||
Console.Out.WriteLine("Content:\n{0}", fileContent);
|
|
||||||
Console.Out.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
|
||||||
if (obj is Exception)
|
|
||||||
{
|
|
||||||
Exception ex = obj as Exception;
|
|
||||||
Console.Out.WriteLine("Ex.Message: {0}", ex.Message);
|
|
||||||
Console.Out.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
|
||||||
Console.Out.WriteLine("Ex.Stacktrace:\n{0}", ex.StackTrace);
|
|
||||||
Console.Out.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
|
||||||
}
|
|
||||||
if (obj != null && (obj is Exception) == false)
|
|
||||||
{
|
|
||||||
JsonWriter writter = new JsonWriter(new JsonWriterConfiguration(indent: true));
|
|
||||||
Console.Out.WriteLine("Parsed:\n{0}", writter.Write(obj));
|
|
||||||
Console.Out.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string FindPath(string currentPath, string directory)
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{
|
|
||||||
string testPath = Path.Combine(currentPath, directory);
|
|
||||||
if (Directory.Exists(testPath))
|
|
||||||
{
|
|
||||||
currentPath = testPath;
|
|
||||||
Console.Out.WriteLine(testPath);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DirectoryInfo dirInfo = Directory.GetParent(currentPath);
|
|
||||||
if (dirInfo == null)
|
|
||||||
{
|
|
||||||
throw new Exception(string.Format("FindPath: Directory {0} not found", directory));
|
|
||||||
}
|
|
||||||
currentPath = dirInfo.ToString();
|
|
||||||
}
|
|
||||||
} while (string.IsNullOrEmpty(currentPath) == false);
|
|
||||||
return currentPath;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,36 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
[assembly: AssemblyTitle("VAR.Json.Tests")]
|
[assembly: AssemblyTitle("VAR.Json.Tests")]
|
||||||
[assembly: AssemblyDescription("Json Tests")]
|
[assembly: AssemblyDescription("")]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("VAR")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("VAR.Json.Tests")]
|
[assembly: AssemblyProduct("VAR.Json.Tests")]
|
||||||
[assembly: AssemblyCopyright("Copyright © VAR 2016")]
|
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
[assembly: Guid("576297b8-423d-4533-b75a-f186ccff0d2a")]
|
|
||||||
[assembly: AssemblyVersion("1.0.*")]
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("b92ac920-87d7-46de-afd8-d9c5eff7debe")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
|
|||||||
@@ -1,20 +1,27 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{576297B8-423D-4533-B75A-F186CCFF0D2A}</ProjectGuid>
|
<ProjectGuid>{B92AC920-87D7-46DE-AFD8-D9C5EFF7DEBE}</ProjectGuid>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>VAR.Json.Tests</RootNamespace>
|
<RootNamespace>VAR.Json.Tests</RootNamespace>
|
||||||
<AssemblyName>VAR.Json.Tests</AssemblyName>
|
<AssemblyName>VAR.Json.Tests</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||||
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
|
||||||
|
<IsCodedUITest>False</IsCodedUITest>
|
||||||
|
<TestProjectType>UnitTest</TestProjectType>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
@@ -24,7 +31,6 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
@@ -33,58 +39,63 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\MSTest.TestFramework.2.1.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\MSTest.TestFramework.2.1.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<Choose>
|
||||||
|
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
|
||||||
|
</ItemGroup>
|
||||||
|
</When>
|
||||||
|
<Otherwise />
|
||||||
|
</Choose>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="JsonParser_Tests.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="tests\fail01.json" />
|
<None Include="packages.config" />
|
||||||
<None Include="tests\fail10.json" />
|
|
||||||
<None Include="tests\fail11.json" />
|
|
||||||
<None Include="tests\fail12.json" />
|
|
||||||
<None Include="tests\fail13.json" />
|
|
||||||
<None Include="tests\fail14.json" />
|
|
||||||
<None Include="tests\fail15.json" />
|
|
||||||
<None Include="tests\fail16.json" />
|
|
||||||
<None Include="tests\fail17.json" />
|
|
||||||
<None Include="tests\fail18.json" />
|
|
||||||
<None Include="tests\fail19.json" />
|
|
||||||
<None Include="tests\fail02.json" />
|
|
||||||
<None Include="tests\fail20.json" />
|
|
||||||
<None Include="tests\fail21.json" />
|
|
||||||
<None Include="tests\fail22.json" />
|
|
||||||
<None Include="tests\fail23.json" />
|
|
||||||
<None Include="tests\fail24.json" />
|
|
||||||
<None Include="tests\fail25.json" />
|
|
||||||
<None Include="tests\fail26.json" />
|
|
||||||
<None Include="tests\fail27.json" />
|
|
||||||
<None Include="tests\fail28.json" />
|
|
||||||
<None Include="tests\fail29.json" />
|
|
||||||
<None Include="tests\fail03.json" />
|
|
||||||
<None Include="tests\fail30.json" />
|
|
||||||
<None Include="tests\fail31.json" />
|
|
||||||
<None Include="tests\fail32.json" />
|
|
||||||
<None Include="tests\fail33.json" />
|
|
||||||
<None Include="tests\fail04.json" />
|
|
||||||
<None Include="tests\fail05.json" />
|
|
||||||
<None Include="tests\fail06.json" />
|
|
||||||
<None Include="tests\fail07.json" />
|
|
||||||
<None Include="tests\fail08.json" />
|
|
||||||
<None Include="tests\fail09.json" />
|
|
||||||
<None Include="tests\pass01.json" />
|
|
||||||
<None Include="tests\pass02.json" />
|
|
||||||
<None Include="tests\pass03.json" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\VAR.Json\VAR.Json.csproj">
|
<ProjectReference Include="..\VAR.Json\VAR.Json.csproj">
|
||||||
<Project>{28b3f937-145c-4fd4-a75b-a25ea4cc0428}</Project>
|
<Project>{28B3F937-145C-4FD4-A75B-A25EA4CC0428}</Project>
|
||||||
<Name>VAR.Json</Name>
|
<Name>VAR.Json</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<Choose>
|
||||||
|
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
</When>
|
||||||
|
</Choose>
|
||||||
|
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<Import Project="..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets')" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
|
|||||||
5
VAR.Json.Tests/packages.config
Normal file
5
VAR.Json.Tests/packages.config
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="MSTest.TestAdapter" version="2.1.1" targetFramework="net461" />
|
||||||
|
<package id="MSTest.TestFramework" version="2.1.1" targetFramework="net461" />
|
||||||
|
</packages>
|
||||||
@@ -1 +0,0 @@
|
|||||||
"A JSON payload should be an object or array, not a string."
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["Unclosed array"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{unquoted_key: "keys must be quoted"}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["extra comma",]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["double extra comma",,]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[ , "<-- missing value"]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["Comma after the close"],
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["Extra close"]]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Extra comma": true,}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Extra value after close": true} "misplaced quoted value"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Illegal expression": 1 + 2}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Illegal invocation": alert()}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Numbers cannot have leading zeroes": 013}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Numbers cannot be hex": 0x14}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["Illegal backslash escape: \x15"]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[\naked]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["Illegal backslash escape: \017"]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Missing colon" null}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Double colon":: null}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Comma instead of colon", null}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["Colon instead of comma": false]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["Bad value", truth]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
['single quote']
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[" tab character in string "]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["tab\ character\ in\ string\ "]
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
["line
|
|
||||||
break"]
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
["line\
|
|
||||||
break"]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[0e]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[0e+]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[0e+-1]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"Comma instead if closing brace": true,
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
["mismatch"}
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
[
|
|
||||||
"JSON Test Pattern pass1",
|
|
||||||
{"object with 1 member":["array with 1 element"]},
|
|
||||||
{},
|
|
||||||
[],
|
|
||||||
-42,
|
|
||||||
true,
|
|
||||||
false,
|
|
||||||
null,
|
|
||||||
{
|
|
||||||
"integer": 1234567890,
|
|
||||||
"real": -9876.543210,
|
|
||||||
"e": 0.123456789e-12,
|
|
||||||
"E": 1.234567890E+34,
|
|
||||||
"": 23456789012E66,
|
|
||||||
"zero": 0,
|
|
||||||
"one": 1,
|
|
||||||
"space": " ",
|
|
||||||
"quote": "\"",
|
|
||||||
"backslash": "\\",
|
|
||||||
"controls": "\b\f\n\r\t",
|
|
||||||
"slash": "/ & \/",
|
|
||||||
"alpha": "abcdefghijklmnopqrstuvwyz",
|
|
||||||
"ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
|
|
||||||
"digit": "0123456789",
|
|
||||||
"0123456789": "digit",
|
|
||||||
"special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
|
|
||||||
"hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
|
|
||||||
"true": true,
|
|
||||||
"false": false,
|
|
||||||
"null": null,
|
|
||||||
"array":[ ],
|
|
||||||
"object":{ },
|
|
||||||
"address": "50 St. James Street",
|
|
||||||
"url": "http://www.JSON.org/",
|
|
||||||
"comment": "// /* <!-- --",
|
|
||||||
"# -- --> */": " ",
|
|
||||||
" s p a c e d " :[1,2 , 3
|
|
||||||
|
|
||||||
,
|
|
||||||
|
|
||||||
4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7],
|
|
||||||
"jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
|
|
||||||
"quotes": "" \u0022 %22 0x22 034 "",
|
|
||||||
"\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
|
|
||||||
: "A key can be any string"
|
|
||||||
},
|
|
||||||
0.5 ,98.6
|
|
||||||
,
|
|
||||||
99.44
|
|
||||||
,
|
|
||||||
|
|
||||||
1066,
|
|
||||||
1e1,
|
|
||||||
0.1e1,
|
|
||||||
1e-1,
|
|
||||||
1e00,2e+00,2e-00
|
|
||||||
,"rosebud"]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"JSON Test Pattern pass3": {
|
|
||||||
"The outermost value": "must be an object or array.",
|
|
||||||
"In this test": "It is an object."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
19
VAR.Json.sln
19
VAR.Json.sln
@@ -1,18 +1,18 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 14
|
# Visual Studio Version 16
|
||||||
VisualStudioVersion = 14.0.25420.1
|
VisualStudioVersion = 16.0.30330.147
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VAR.Json", "VAR.Json\VAR.Json.csproj", "{28B3F937-145C-4FD4-A75B-A25EA4CC0428}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VAR.Json", "VAR.Json\VAR.Json.csproj", "{28B3F937-145C-4FD4-A75B-A25EA4CC0428}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VAR.Json.Tests", "VAR.Json.Tests\VAR.Json.Tests.csproj", "{576297B8-423D-4533-B75A-F186CCFF0D2A}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notes", "Notes", "{4C23A421-5348-48F1-8B67-A4D43E616FDE}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notes", "Notes", "{4C23A421-5348-48F1-8B67-A4D43E616FDE}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
LICENSE.txt = LICENSE.txt
|
LICENSE.txt = LICENSE.txt
|
||||||
README.md = README.md
|
README.md = README.md
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VAR.Json.Tests", "VAR.Json.Tests\VAR.Json.Tests.csproj", "{B92AC920-87D7-46DE-AFD8-D9C5EFF7DEBE}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -23,12 +23,15 @@ Global
|
|||||||
{28B3F937-145C-4FD4-A75B-A25EA4CC0428}.Debug|Any CPU.Build.0 = Debug .Net 4.6.1|Any CPU
|
{28B3F937-145C-4FD4-A75B-A25EA4CC0428}.Debug|Any CPU.Build.0 = Debug .Net 4.6.1|Any CPU
|
||||||
{28B3F937-145C-4FD4-A75B-A25EA4CC0428}.Release|Any CPU.ActiveCfg = Release .Net 4.6.1|Any CPU
|
{28B3F937-145C-4FD4-A75B-A25EA4CC0428}.Release|Any CPU.ActiveCfg = Release .Net 4.6.1|Any CPU
|
||||||
{28B3F937-145C-4FD4-A75B-A25EA4CC0428}.Release|Any CPU.Build.0 = Release .Net 4.6.1|Any CPU
|
{28B3F937-145C-4FD4-A75B-A25EA4CC0428}.Release|Any CPU.Build.0 = Release .Net 4.6.1|Any CPU
|
||||||
{576297B8-423D-4533-B75A-F186CCFF0D2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{B92AC920-87D7-46DE-AFD8-D9C5EFF7DEBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{576297B8-423D-4533-B75A-F186CCFF0D2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{B92AC920-87D7-46DE-AFD8-D9C5EFF7DEBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{576297B8-423D-4533-B75A-F186CCFF0D2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{B92AC920-87D7-46DE-AFD8-D9C5EFF7DEBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{576297B8-423D-4533-B75A-F186CCFF0D2A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{B92AC920-87D7-46DE-AFD8-D9C5EFF7DEBE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {B9700B54-1919-4B81-B123-D4D3DE74124A}
|
||||||
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
Reference in New Issue
Block a user