Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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));
        }