1 package test.net.sourceforge.pmd.cpd;
2
3 import java.io.IOException;
4
5 import net.sourceforge.pmd.PMD;
6 import net.sourceforge.pmd.cpd.RubyTokenizer;
7 import net.sourceforge.pmd.cpd.SourceCode;
8
9 import org.junit.Before;
10 import org.junit.Test;
11
12 import test.net.sourceforge.pmd.testframework.AbstractTokenizerTest;
13
14
15 public class RubyTokenizerTest extends AbstractTokenizerTest {
16
17 @Before
18 @Override
19 public void buildTokenizer() {
20 this.tokenizer = new RubyTokenizer();
21 this.sourceCode = new SourceCode(new SourceCode.StringCodeLoader(this.getSampleCode(), "server.rb"));
22 }
23
24 @Override
25 public String getSampleCode() {
26 return "require \"socket\"" + PMD.EOL +
27 "" + PMD.EOL +
28 "gs = TCPServer.open(0)" + PMD.EOL +
29 "addr = gs.addr" + PMD.EOL +
30 "addr.shift" + PMD.EOL +
31 "" + PMD.EOL +
32 "while true" + PMD.EOL +
33 " ns = gs.accept" + PMD.EOL +
34 " print(ns, \" is accepted\")" + PMD.EOL +
35 " Thread.start do" + PMD.EOL +
36 " s = ns # save to dynamic variable" + PMD.EOL +
37 " while s.gets" + PMD.EOL +
38 " s.write($_)" + PMD.EOL +
39 " end" + PMD.EOL +
40 " print(s, \" is " + PMD.EOL +
41 " gone" + PMD.EOL +
42 " and" + PMD.EOL +
43 " dead\")" + PMD.EOL +
44 " s.close" + PMD.EOL +
45 " end" + PMD.EOL +
46 "end" + PMD.EOL;
47 }
48
49 @Test
50 public void tokenizeTest() throws IOException {
51 this.expectedTokenCount = 30;
52 super.tokenizeTest();
53 }
54
55 public static junit.framework.Test suite() {
56 return new junit.framework.JUnit4TestAdapter(RubyTokenizerTest.class);
57 }
58 }