// [Fact] public void RobustUse() { var rawJson = ""; // Statically parse raw json var(dbExpression, errs) = RqlParser.Parse <TestClass>(rawJson); // Alternatively parse a `RqlExpression` useful for avoiding nasty C# json string literals var rqlExpression = new RqlExpression { Filter = new Dictionary <string, object>() { }, }; (dbExpression, errs) = RqlParser.Parse <TestClass>(rqlExpression); // Alternatively you can use a generic instance IRqlParser <TestClass> genericParser = new RqlParser <TestClass>(); (dbExpression, errs) = genericParser.Parse(rawJson); (dbExpression, errs) = genericParser.Parse(rqlExpression); // Alternatively you can use a non-generic instance var classSpec = new ClassSpecBuilder().Build(typeof(TestClass)); IRqlParser parser = new RqlParser(classSpec); (dbExpression, errs) = parser.Parse(rawJson); (dbExpression, errs) = parser.Parse(rqlExpression); }
public void Member_Invoked_MemberAddedToSpec() { const string member = "member"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member); Assert.True(spec.MemberAttributes.ContainsKey(member)); }
public void IgnoreBase_Invoked_SpecUpdated() { var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.IgnoreBase(); Attribute attribute = spec.AdditionalAttributes.FirstOrDefault(); Assert.IsType <TsIgnoreBaseAttribute>(attribute); }
public void Ignore_Invoked_SpecUpdated() { const string member = "member"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member).Ignore(); Attribute attribute = spec.MemberAttributes[member].FirstOrDefault(); Assert.IsType <TsIgnoreAttribute>(attribute); }
public void DefaultExport_Invoked_SpecUpdated(bool enabled) { var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.DefaultExport(enabled); Attribute attribute = spec.AdditionalAttributes.FirstOrDefault(); Assert.IsType <TsDefaultExportAttribute>(attribute); Assert.Equal(enabled, ((TsDefaultExportAttribute)attribute).Enabled); }
public void DefaultValue_Invoked_SpecUpdated() { const string member = "member"; const string defaultValue = "defaultValue"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member).DefaultValue(defaultValue); Attribute attribute = spec.MemberAttributes[member].FirstOrDefault(); Assert.IsType <TsDefaultValueAttribute>(attribute); Assert.Equal(defaultValue, ((TsDefaultValueAttribute)attribute).DefaultValue); }
public void DefaultTypeOutput_Invoked_SpecUpdated() { const string member = "member"; const string outputDir = "outputDir"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member).DefaultTypeOutput(outputDir); Attribute attribute = spec.MemberAttributes[member].FirstOrDefault(); Assert.IsType <TsDefaultTypeOutputAttribute>(attribute); Assert.Equal(outputDir, ((TsDefaultTypeOutputAttribute)attribute).OutputDir); }
public void MemberName_Invoked_SpecUpdated() { const string member = "member"; const string name = "name"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member).MemberName(name); Attribute attribute = spec.MemberAttributes[member].FirstOrDefault(); Assert.IsType <TsMemberNameAttribute>(attribute); Assert.Equal(name, ((TsMemberNameAttribute)attribute).Name); }
public void Member_AttributesSpecifiedForMember_AttributesAddedToCorrectMember() { const string member1 = "member1"; const string member2 = "member2"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member1).Ignore().Member(member2).Null(); Attribute attribute1 = spec.MemberAttributes[member1].FirstOrDefault(); Attribute attribute2 = spec.MemberAttributes[member2].FirstOrDefault(); Assert.IsType <TsIgnoreAttribute>(attribute1); Assert.IsType <TsNullAttribute>(attribute2); }
public void TypeUnions_Invoked_SpecUpdated() { const string member = "member"; string[] typeUnions = { "null", "undefined" }; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member).TypeUnions(typeUnions); Attribute attribute = spec.MemberAttributes[member].FirstOrDefault(); Assert.IsType <TsTypeUnionsAttribute>(attribute); Assert.Same(typeUnions, ((TsTypeUnionsAttribute)attribute).TypeUnions); }
public void CustomBase_Invoked_SpecUpdated() { const string @base = "base"; const string importPath = "importPath"; const string originalTypeName = "originalTypeName"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.CustomBase(@base, importPath, originalTypeName); Attribute attribute = spec.AdditionalAttributes.FirstOrDefault(); Assert.IsType <TsCustomBaseAttribute>(attribute); Assert.Equal(@base, ((TsCustomBaseAttribute)attribute).Base); Assert.Equal(importPath, ((TsCustomBaseAttribute)attribute).ImportPath); Assert.Equal(originalTypeName, ((TsCustomBaseAttribute)attribute).OriginalTypeName); }
public void Type_Invoked_SpecUpdated() { const string member = "member"; const string typeName = "typeName"; const string importPath = "importPath"; const string originalTypeName = "originalTypeName"; var spec = new TypeSpec(new ExportTsClassAttribute()); var builder = new ClassSpecBuilder(spec); builder.Member(member).Type(typeName, importPath, originalTypeName); Attribute attribute = spec.MemberAttributes[member].FirstOrDefault(); Assert.IsType <TsTypeAttribute>(attribute); Assert.Equal(typeName, ((TsTypeAttribute)attribute).TypeName); Assert.Equal(importPath, ((TsTypeAttribute)attribute).ImportPath); Assert.Equal(originalTypeName, ((TsTypeAttribute)attribute).OriginalTypeName); }