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