public void DataTypeVisitor_ArgumentChecking() { AssertEx.ThrowsException <ArgumentNullException>(() => DataTypeVisitor.Visit <int>(nodes: null, x => x), ex => Assert.AreEqual("nodes", ex.ParamName)); AssertEx.ThrowsException <ArgumentNullException>(() => DataTypeVisitor.Visit <int>(new List <int> { 5 }.AsReadOnly(), elementVisitor: null), ex => Assert.AreEqual("elementVisitor", ex.ParamName)); }
public static SqlType Parse(PlSqlParser.DatatypeContext context) { var typeInfo = new DataTypeVisitor().Visit(context); if (!typeInfo.IsPrimitive) throw new NotSupportedException(); return PrimitiveTypes.Resolve(typeInfo.TypeName, typeInfo.Metadata); }
public void DataTypeVisitor_Custom() { var v = new MyVisitor(); var d = new MyDataType(); var e = v.Visit(d); Assert.ThrowsException <NotImplementedException>(() => _ = new DataTypeVisitor().Visit(d)); Assert.AreSame(d, e); Assert.AreEqual(d.ToString(), e.ToString()); }
public DataTypeInfo ParseDataType(string s) { SetInput(s); //var plSqlParser = MakeParser(s, null); var parseResult = plSqlParser.datatype(); var visitor = new DataTypeVisitor(); return visitor.Visit(parseResult); }