1 package jp.naist.se.stigmata.birthmarks.smc;
\r
7 import jp.naist.se.stigmata.Birthmark;
\r
8 import jp.naist.se.stigmata.BirthmarkContext;
\r
9 import jp.naist.se.stigmata.BirthmarkElement;
\r
10 import jp.naist.se.stigmata.BirthmarkSet;
\r
11 import jp.naist.se.stigmata.ExtractionResultSet;
\r
12 import jp.naist.se.stigmata.Stigmata;
\r
14 import org.junit.Assert;
\r
15 import org.junit.Before;
\r
16 import org.junit.Test;
\r
20 * @author Haruaki TAMADA
\r
21 * @version $Revision$ $Date$
\r
23 public class SmcBirthmarkExtractorTest{
\r
24 private Stigmata stigmata;
\r
25 private BirthmarkContext context;
\r
28 public void setup(){
\r
29 stigmata = Stigmata.getInstance();
\r
30 context = stigmata.createContext();
\r
31 context.addExtractionType("smc");
\r
35 public void checkSmcBirthmark() throws Exception{
\r
36 ExtractionResultSet ers = stigmata.createEngine().extract(
\r
37 new String[] { "target/classes/jp/naist/se/stigmata/Stigmata.class", },
\r
40 BirthmarkSet[] array = ers.getBirthmarkSets();
\r
42 Assert.assertEquals(1, array.length);
\r
43 Assert.assertNotNull(array[0].getBirthmark("smc"));
\r
45 Birthmark birthmark = array[0].getBirthmark("smc");
\r
46 Assert.assertEquals("smc", birthmark.getType());
\r
48 BirthmarkElement[] elements = birthmark.getElements();
\r
49 for(int i = 0; i < elements.length; i++){
\r
50 Assert.assertEquals(
\r
51 "jp.naist.se.stigmata.birthmarks.smc.MethodCallBirthmarkElement",
\r
52 elements[i].getClass().getName()
\r
56 Assert.assertEquals(76, birthmark.getElementCount());
\r
58 Assert.assertEquals("java.io.FileInputStream#<init>", elements[index++].getValue());
\r
59 Assert.assertEquals("java.io.File#<init>", elements[index++].getValue());
\r
60 Assert.assertEquals("java.io.File#exists", elements[index++].getValue());
\r
61 Assert.assertEquals("java.lang.System#getProperty", elements[index++].getValue());
\r
62 Assert.assertEquals("java.io.File#<init>", elements[index++].getValue());
\r
63 Assert.assertEquals("java.io.File#exists", elements[index++].getValue());
\r
64 Assert.assertEquals("java.io.FileInputStream#<init>", elements[index++].getValue());
\r
65 Assert.assertEquals("java.lang.Object#getClass", elements[index++].getValue());
\r
66 Assert.assertEquals("java.lang.Class#getResourceAsStream", elements[index++].getValue());
\r
67 Assert.assertEquals("java.util.ArrayList#<init>", elements[index++].getValue());
\r
68 Assert.assertEquals("java.util.ArrayList#<init>", elements[index++].getValue());
\r
69 Assert.assertEquals("java.lang.String#endsWith", elements[index++].getValue());
\r
70 Assert.assertEquals("java.util.List#add", elements[index++].getValue());
\r
71 Assert.assertEquals("java.lang.String#endsWith", elements[index++].getValue());
\r
72 Assert.assertEquals("java.lang.String#endsWith", elements[index++].getValue());
\r
73 Assert.assertEquals("java.util.List#add", elements[index++].getValue());
\r
74 Assert.assertEquals("java.io.File#<init>", elements[index++].getValue());
\r
75 Assert.assertEquals("java.io.File#toURI", elements[index++].getValue());
\r
76 Assert.assertEquals("java.net.URI#toURL", elements[index++].getValue());
\r
77 Assert.assertEquals("java.lang.String#endsWith", elements[index++].getValue());
\r
78 Assert.assertEquals("java.util.List#add", elements[index++].getValue());
\r
79 Assert.assertEquals("java.util.List#iterator", elements[index++].getValue());
\r
80 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].getValue());
\r
81 Assert.assertEquals("java.util.Iterator#next", elements[index++].getValue());
\r
82 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].getValue());
\r
83 Assert.assertEquals("java.util.Iterator#next", elements[index++].getValue());
\r
84 Assert.assertEquals("java.net.URL#openStream", elements[index++].getValue());
\r
85 Assert.assertEquals("java.util.List#add", elements[index++].getValue());
\r
86 Assert.assertEquals("java.util.List#size", elements[index++].getValue());
\r
87 Assert.assertEquals("java.util.List#toArray", elements[index++].getValue());
\r
88 Assert.assertEquals("java.util.ArrayList#<init>", elements[index++].getValue());
\r
89 Assert.assertEquals("java.util.List#add", elements[index++].getValue());
\r
90 Assert.assertEquals("java.lang.Object#getClass", elements[index++].getValue());
\r
91 Assert.assertEquals("java.lang.Class#getName", elements[index++].getValue());
\r
92 Assert.assertEquals("java.util.logging.Logger#getLogger", elements[index++].getValue());
\r
93 Assert.assertEquals("java.lang.StringBuilder#<init>", elements[index++].getValue());
\r
94 Assert.assertEquals("java.lang.StringBuilder#append", elements[index++].getValue());
\r
95 Assert.assertEquals("java.lang.StringBuilder#append", elements[index++].getValue());
\r
96 Assert.assertEquals("java.lang.StringBuilder#toString", elements[index++].getValue());
\r
97 Assert.assertEquals("java.util.logging.Logger#warning", elements[index++].getValue());
\r
98 Assert.assertEquals("java.util.List#size", elements[index++].getValue());
\r
99 Assert.assertEquals("java.util.List#toArray", elements[index++].getValue());
\r
100 Assert.assertEquals("java.util.ArrayList#<init>", elements[index++].getValue());
\r
101 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].getValue());
\r
102 Assert.assertEquals("java.util.Iterator#next", elements[index++].getValue());
\r
103 Assert.assertEquals("java.lang.Double#valueOf", elements[index++].getValue());
\r
104 Assert.assertEquals("java.util.List#add", elements[index++].getValue());
\r
105 Assert.assertEquals("java.util.List#iterator", elements[index++].getValue());
\r
106 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].getValue());
\r
107 Assert.assertEquals("java.util.Iterator#next", elements[index++].getValue());
\r
108 Assert.assertEquals("java.lang.Double#doubleValue", elements[index++].getValue());
\r
109 Assert.assertEquals("java.lang.Double#doubleValue", elements[index++].getValue());
\r
110 Assert.assertEquals("org.apache.commons.beanutils.BeanUtils#describe",
\r
111 elements[index++].getValue());
\r
112 Assert.assertEquals("java.util.Map#remove", elements[index++].getValue());
\r
113 Assert.assertEquals("java.util.Map#remove", elements[index++].getValue());
\r
114 Assert.assertEquals("java.util.Map#keySet", elements[index++].getValue());
\r
115 Assert.assertEquals("java.util.Set#iterator", elements[index++].getValue());
\r
116 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].getValue());
\r
117 Assert.assertEquals("java.util.Iterator#next", elements[index++].getValue());
\r
118 Assert.assertEquals("java.lang.StringBuilder#<init>", elements[index++].getValue());
\r
119 Assert.assertEquals("java.lang.StringBuilder#append", elements[index++].getValue());
\r
120 Assert.assertEquals("java.lang.StringBuilder#append", elements[index++].getValue());
\r
121 Assert.assertEquals("java.lang.StringBuilder#append", elements[index++].getValue());
\r
122 Assert.assertEquals("java.lang.String#valueOf", elements[index++].getValue());
\r
123 Assert.assertEquals("java.lang.StringBuilder#append", elements[index++].getValue());
\r
124 Assert.assertEquals("java.lang.StringBuilder#toString", elements[index++].getValue());
\r
125 Assert.assertEquals("org.apache.commons.beanutils.BeanUtils#setProperty",
\r
126 elements[index++].getValue());
\r
127 Assert.assertEquals("java.io.ByteArrayInputStream#<init>", elements[index++].getValue());
\r
128 Assert.assertEquals("java.io.ByteArrayOutputStream#<init>", elements[index++].getValue());
\r
129 Assert.assertEquals("java.io.InputStream#read", elements[index++].getValue());
\r
130 Assert.assertEquals("java.io.ByteArrayOutputStream#write", elements[index++].getValue());
\r
131 Assert.assertEquals("java.io.ByteArrayOutputStream#toByteArray",
\r
132 elements[index++].getValue());
\r
133 Assert.assertEquals("java.io.ByteArrayOutputStream#close", elements[index++].getValue());
\r
134 Assert.assertEquals("javax.imageio.spi.ServiceRegistry#lookupProviders",
\r
135 elements[index++].getValue());
\r
136 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].getValue());
\r
137 Assert.assertEquals("java.util.Iterator#next", elements[index++].getValue());
\r
142 public void checkSmcBirthmark2() throws Exception{
\r
143 ExtractionResultSet ers = stigmata.createEngine().extract(
\r
144 new String[] { "target/classes/jp/naist/se/stigmata/result/RoundRobinComparisonResultSet.class", },
\r
147 BirthmarkSet[] array = ers.getBirthmarkSets();
\r
149 Assert.assertEquals(array.length, 1);
\r
150 Assert.assertNotNull(array[0].getBirthmark("smc"));
\r
152 Birthmark birthmark = array[0].getBirthmark("smc");
\r
153 Assert.assertEquals("smc", birthmark.getType());
\r
154 Assert.assertEquals(18, birthmark.getElementCount());
\r
156 BirthmarkElement[] elements = birthmark.getElements();
\r
157 for(int i = 0; i < elements.length; i++){
\r
158 Assert.assertEquals(
\r
159 "jp.naist.se.stigmata.birthmarks.smc.MethodCallBirthmarkElement",
\r
160 elements[i].getClass().getName()
\r
165 // <init>(ExtractionResult, BirthmarkEnvironment, boolean)
\r
166 Assert.assertEquals("java.lang.Object#<init>", elements[index++].toString());
\r
168 // getComparisonSources
\r
169 Assert.assertEquals("java.util.ArrayArrays#<init>", elements[index++].toString());
\r
170 Assert.assertEquals("java.util.Arrays#asList", elements[index++].toString());
\r
172 // setCompareSamePair
\r
173 Assert.assertEquals("java.util.List#size", elements[index++].toString());
\r
174 Assert.assertEquals("java.util.List#size", elements[index++].toString());
\r
175 Assert.assertEquals("java.util.List#size", elements[index++].toString());
\r
176 Assert.assertEquals("java.util.List#size", elements[index++].toString());
\r
178 // getComparisonSources
\r
179 Assert.assertEquals("java.util.HashMap#<init>", elements[index++].toString());
\r
180 Assert.assertEquals("java.util.List#iterator", elements[index++].toString());
\r
181 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].toString());
\r
182 Assert.assertEquals("java.util.Iterator#next", elements[index++].toString());
\r
183 Assert.assertEquals("java.util.Map#put", elements[index++].toString());
\r
184 Assert.assertEquals("java.util.List#iterator", elements[index++].toString());
\r
185 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].toString());
\r
186 Assert.assertEquals("java.util.Iterator#next", elements[index++].toString());
\r
187 Assert.assertEquals("java.util.Map#put", elements[index++].toString());
\r
188 Assert.assertEquals("java.util.Map#size", elements[index++].toString());
\r
189 Assert.assertEquals("java.util.Map#entrySet", elements[index++].toString());
\r
190 Assert.assertEquals("java.util.Set#iterator", elements[index++].toString());
\r
191 Assert.assertEquals("java.util.Iterator#hasNext", elements[index++].toString());
\r
192 Assert.assertEquals("java.util.Iterator#next", elements[index++].toString());
\r
193 Assert.assertEquals("java.util.Map$Entry#getValue", elements[index++].toString());
\r