private string GenerateOutput() { var solution = DTETransformer.BuildDteSolution(this.Types.ToArray()); var generator = new CodeTraverser(solution, this.Settings); var data = generator.GetAllInterfaces().ToList(); return(OutputFormatter.GetOutput(data, this.Settings)); }
private static CodeElement BuildDteBase(Type withType) { var moqBase = new Mock <CodeElement>(); string baseTypeFullname = DTETransformer.GenerateFullNameFromType(withType); moqBase.SetupGet(x => x.FullName).Returns(baseTypeFullname); return(moqBase.Object); }
public static object BuildDteObject(Type fromType) { object result = null; if (fromType.IsClass) { result = DTETransformer.BuildDteClass(fromType); } else if (fromType.IsInterface) { result = DTETransformer.BuildDteInterface(fromType); } else if (fromType.IsEnum) { result = DTETransformer.BuildDteEnum(fromType); } return(result); }
public static CodeInterface BuildDteInterface(Type fromClass) { var moqMember = new Mock <CodeInterface>(); var classAttributes = BuildDteAttributes <TypeScriptInterfaceAttribute>(fromClass); moqMember.SetupGet(x => x.Attributes).Returns(classAttributes); var properties = new List <CodeProperty>( fromClass .GetProperties(BindingFlags.Public | BindingFlags.DeclaredOnly | BindingFlags.Instance) .Select(BuildDteProperty) ); var propertiesMoq = new Mock <CodeElements>(); propertiesMoq.Setup(x => x.GetEnumerator()).Returns(() => properties.GetEnumerator()); var bases = GetBaseTypes(fromClass) .Select(BuildDteBase) .ToList(); var basesMoq = new Mock <CodeElements>(); basesMoq.Setup(x => x.GetEnumerator()).Returns(() => bases.GetEnumerator()); basesMoq.Setup(x => x.Count).Returns(() => bases.Count); basesMoq.Setup(x => x.Item(It.IsAny <int>())) .Returns((int i) => bases.ElementAtOrDefault(i - 1)); // Item() accessor is not zero-based var moqCodeNamespace = new Mock <CodeNamespace>(); moqCodeNamespace.SetupGet(x => x.FullName).Returns(fromClass.Namespace); moqMember.SetupGet(x => x.Name).Returns(DTETransformer.GenerateNameFromType(fromClass)); moqMember.SetupGet(x => x.FullName).Returns(DTETransformer.GenerateFullNameFromType(fromClass)); moqMember.SetupGet(x => x.Bases).Returns(basesMoq.Object); moqMember.SetupGet(x => x.Members).Returns(propertiesMoq.Object); moqMember.SetupGet(x => x.Namespace).Returns(moqCodeNamespace.Object); return(moqMember.Object); }
private string GenerateOutput() { var solution = DTETransformer.BuildDteSolution(this.Types.ToArray()); var attributeBuilder = new AttributeInterfaceBuilder(this.Settings); var typeContext = new TypeContext(this.TypeSettings); var generator = new CodeTraverser( solution, typeContext) { Settings = { ClassToInterfaceBuilder = attributeBuilder } }; var data = generator.GetAllInterfaces().ToList(); return(OutputFormatter.GetOutput( data, this.OutputSettings, typeContext)); }