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