Beispiel #1
0
        public RawCode RecordRawCode()
        {
            var pulseList = RecordCode();
            var rawCode   = new RawCode(pulseList.Select(x => (int)x.Item2).ToArray());

            return(rawCode);
        }
Beispiel #2
0
        public void TestDontReplaceIndividualProperty(string source, string expectedBody)
        {
            var code = new RawCode(source.Split("\n"));

            _replacer.Replace(code);
            Assert.True(code.GetContent().Contains(expectedBody));
        }
Beispiel #3
0
        public void TestEnsureMethodNotProperty(string source)
        {
            var code = new RawCode(source.Split("\n"));

            var methodDeclaration = Extractor.MethodDeclarationIdentifier.TryFind(0, code);

            Assert.AreEqual(null, methodDeclaration);
        }
Beispiel #4
0
        public void TestReplaceSingleMethod(string source, string bodyBefore, string expectedAfter)
        {
            var code = new RawCode(source.Split("\n"));

            _replacer.Replace(code);

            Assert.False(code.GetContent().Contains(bodyBefore));
            Assert.True(code.GetContent().Contains(expectedAfter));
        }
Beispiel #5
0
        public void TestClassConstructorAndMethodLineShifting(string source, int expectedBracketCount)
        {
            var lines = source.Split("\n");
            var code  = new RawCode(lines);

            _replacer.Replace(code);

            Assert.AreEqual(expectedBracketCount, code.GetContent().Count(ch => ch == '}'));
            Assert.AreEqual(expectedBracketCount, code.GetContent().Count(ch => ch == '{'));
        }
Beispiel #6
0
        public void TestDontReplaceClassWithTwoProperties()
        {
            var lines = TestConstants.TestClassWithTwoProperties.Split("\n");
            var code  = new RawCode(lines);

            _replacer.Replace(code);

            Assert.True(code.GetContent().Contains(TestConstants.TestProperty1));
            Assert.True(code.GetContent().Contains(TestConstants.TestProperty2));
        }
Beispiel #7
0
        public void TestReplaceClassWithTwoConstructors()
        {
            var lines = TestConstants.TestClassWithConstructor1And2.Split("\n");
            var code  = new RawCode(lines);

            _replacer.Replace(code);

            Assert.False(code.GetContent().Contains(TestConstants.TestConstructor1));
            Assert.False(code.GetContent().Contains(TestConstants.TestConstructor2));
            Assert.True(code.GetContent().Contains(TestConstants.NotImplementedException));
        }
Beispiel #8
0
        public void TestReplaceWithinNamespace()
        {
            var lines = TestConstants.TestNamespaceAndClassWithSingleMethod.Split("\n");
            var code  = new RawCode(lines);

            _replacer.Replace(code);

            Assert.True(code.GetContent().Contains(TestConstants.NotImplementedException));
            Assert.False(code.GetContent().Contains(TestConstants.PrintStatement));
            Assert.True(code.Lines[0].Equals(new NotImplementedEmitStrategy().Imports.First()));
        }
Beispiel #9
0
        public void TestReplaceConstructor(string source, string bodyBefore, string expectedAfter)
        {
            var code = new RawCode(source.Split("\n"));

            _replacer.Replace(code);

            if (!string.IsNullOrEmpty(bodyBefore))
            {
                Assert.False(code.GetContent().Contains(bodyBefore));
            }

            Assert.True(code.GetContent().Contains(expectedAfter));
        }
Beispiel #10
0
        public void TestInlineMethod(string source, string[] methodBodies)
        {
            var code = new RawCode(source.Split("\n"));

            Assert.AreEqual(MethodVariant.InlineMethod, Extractor.MethodDeclarationIdentifier.TryFind(0, code).Variant);

            var methods = Extractor.ExtractMethods(code).ToArray();

            Assert.AreEqual(methodBodies.Length, methods.Length);

            for (var i = 0; i < methodBodies.Length; i++)
            {
                Assert.AreEqual(methodBodies[i], methods[i].MethodBody.Content);
            }
        }
Beispiel #11
0
        public void TestExtractMethods(string source, int numExpectedMethods, int[] expectedMethodBodyLengths, string[] expectedMethodBodies)
        {
            var code    = new RawCode(source.Split('\n'));
            var methods = Extractor.ExtractMethods(code).ToArray();

            Assert.AreEqual(numExpectedMethods, methods.Length);

            for (var i = methods.Length - 1; i >= 0; i--)
            {
                var methodDef = methods[i];
                Assert.AreEqual(expectedMethodBodyLengths[i], methodDef.MethodBody.NumLines);

                var expectedMethodBody = expectedMethodBodies[i];
                Assert.AreEqual(expectedMethodBody, methodDef.MethodBody.Content);
            }
        }
Beispiel #12
0
 static InputUploadPainter()
 {
     CodeAssets = CreateCodeAssets();
 }
Beispiel #13
0
 public override string ToString()
 {
     return(RawCode.Aggregate("", (current, line) => current + line));
 }
Beispiel #14
0
 get => Find(item => item.RawCode == RawCode.Numberize(ID));