public static void constructors(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.Parent"); Test.AssertEquals(cls.Constructors.Count, 2); var ctors = cls.Constructors.OrderBy(ctor => ctor.Parameters.Count).ToList(); var default_ctor = ctors[0]; Test.AssertEquals(default_ctor.Parameters.Count, 0); Test.AssertEquals(default_ctor.Visibility, ApiModel.Visibility.Protected); var param_ctor = ctors[1]; Test.AssertEquals(param_ctor.Parameters.Count, 2); Test.AssertEquals(param_ctor.Visibility, ApiModel.Visibility.Public); var first_param = param_ctor.Parameters[0]; Test.AssertEquals(first_param.Name, "x"); Test.AssertEquals(first_param.Type.Name, "System.Int32"); var second_param = param_ctor.Parameters[1]; Test.AssertEquals(second_param.Name, "y"); Test.AssertEquals(second_param.Type.Name, "System.Double"); }
public static void prot_method_visibility(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.Parent"); var protMeth = cls.Methods.Single(x => x.Name == "ProtectedMeth"); Test.AssertEquals(protMeth.Visibility, ApiModel.Visibility.Protected); }
public static void test_serialization(ApiModel.API api) { var memory = new System.IO.MemoryStream(); api.Serialize(memory); memory.Position = 0; var copy = ApiModel.API.Deserialize(memory); Func <ApiModel.API, List <string> > GetNames = (ApiModel.API data) => { List <string> acc = new List <string>(); acc.AddRange(data.Classes.Select(x => x.Name).OrderBy(x => x).ToList()); acc.AddRange(data.FunctionPointers.Select(x => x.Name).OrderBy(x => x).ToList()); acc.AddRange(data.Enums.Select(x => x.Name).OrderBy(x => x).ToList()); acc.AddRange(data.Structs.Select(x => x.Name).OrderBy(x => x).ToList()); return(acc); }; var originalNames = GetNames(api); var newNames = GetNames(copy); Test.AssertEquals(originalNames.Count, newNames.Count); Test.Assert(originalNames.SequenceEqual(newNames)); }
public static void empty_class(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.EmptyClass"); Test.AssertEquals(cls.Constructors.Count, 1, "Must have only the default constructor"); var ctor = cls.Constructors.ElementAt(0); Test.AssertEquals(ctor.Parameters.Count, 0, "Default constructor must not have paramters"); }
public static void get_private_set_property(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.Parent"); var privateSet = cls.Properties.Single(x => x.Name == "PropPrivateSet"); Test.AssertEquals(privateSet.Type.Name, "System.Int32"); Test.Assert(privateSet.HasGet); Test.Assert(!privateSet.HasSet); Test.Assert(!privateSet.HasGetSet); Test.AssertEquals(privateSet.ToString(), "public System.Int32 PropPrivateSet { get; }"); Test.AssertEquals(privateSet.Visibility, ApiModel.Visibility.Public); Test.AssertEquals(privateSet.GetVisibility, ApiModel.Visibility.Public); Test.AssertEquals(privateSet.SetVisibility, ApiModel.Visibility.Other); }
public static void set_only_property(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.Parent"); var setOnly = cls.Properties.Single(x => x.Name == "PropSetOnly"); Test.AssertEquals(setOnly.Type.Name, "System.Double"); Test.Assert(!setOnly.HasGet); Test.Assert(setOnly.HasSet); Test.Assert(!setOnly.HasGetSet); Test.AssertEquals(setOnly.ToString(), "protected System.Double PropSetOnly { set; }"); Test.AssertEquals(setOnly.Visibility, ApiModel.Visibility.Protected); Test.AssertEquals(setOnly.GetVisibility, ApiModel.Visibility.Other); Test.AssertEquals(setOnly.SetVisibility, ApiModel.Visibility.Protected); }
public static void get_only_property(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.Parent"); var getOnly = cls.Properties.Single(x => x.Name == "PropGetOnly"); Test.AssertEquals(getOnly.Type.Name, "System.String"); Test.Assert(getOnly.HasGet); Test.Assert(!getOnly.HasSet); Test.Assert(!getOnly.HasGetSet); Test.AssertEquals(getOnly.ToString(), "public System.String PropGetOnly { get; }"); Test.AssertEquals(getOnly.Visibility, ApiModel.Visibility.Public); Test.AssertEquals(getOnly.GetVisibility, ApiModel.Visibility.Public); Test.AssertEquals(getOnly.SetVisibility, ApiModel.Visibility.Other); }
public static void get_all_events(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.Parent"); Test.AssertEquals(cls.Events.Count, 2); var evts = cls.Events.OrderBy(evt => evt.Name).ToList(); var clicked = evts[0]; Test.AssertEquals(clicked.Name, "Clicked"); Test.AssertEquals(clicked.Type.Name, "System.EventArgs"); Test.AssertEquals(clicked.Visibility, ApiModel.Visibility.Public); var customEvt = evts[1]; Test.AssertEquals(customEvt.Name, "CustomEvent"); Test.AssertEquals(customEvt.Type.Name, "Dummy.CustomArgs"); Test.AssertEquals(customEvt.Visibility, ApiModel.Visibility.Protected); }
public static void SetApi(ApiModel.API api) { s_api = api; }
public static void get_property_count(ApiModel.API api) { var cls = api.Classes.Single(x => x.Name == "Dummy.Parent"); Test.AssertEquals(cls.Properties.Count, 4); }