Skip to content

Commit 38a7724

Browse files
committed
testing for milestone 4 done
1 parent fdfff11 commit 38a7724

3 files changed

Lines changed: 66 additions & 1 deletion

File tree

src/edu/rosehulman/cjjb/javaModel/checks/SingletonCheck.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import edu.rosehulman.cjjb.javaModel.Interface;
1313
import edu.rosehulman.cjjb.javaModel.JavaModel;
1414
import edu.rosehulman.cjjb.javaModel.Method;
15-
import edu.rosehulman.cjjb.javaModel.modifier.AbstractModifier;
1615
import edu.rosehulman.cjjb.javaModel.modifier.IModifier;
1716
import edu.rosehulman.cjjb.javaModel.modifier.StaticModifier;
1817

@@ -35,6 +34,7 @@ public boolean check(JavaModel model, AbstractJavaStructure structure) {
3534

3635
private boolean checkForStaticInstance(AbstractJavaStructure structure) {
3736
for(AbstractJavaElement element: structure.subElements) {
37+
System.out.println(element.name);
3838
if(element.name.equalsIgnoreCase("instance"))
3939
if(checkForModifier(element.modifiers, StaticModifier.class))
4040
return true;

test/SingletonTesting.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import static org.junit.Assert.*;
2+
3+
import java.util.HashSet;
4+
import java.util.LinkedList;
5+
import java.util.Set;
6+
7+
import org.junit.Test;
8+
9+
import edu.rosehulman.cjjb.javaModel.checks.IModelStructureBooleanCheck;
10+
import edu.rosehulman.cjjb.javaModel.checks.SingletonCheck;
11+
import edu.rosehulman.cjjb.javaModel.*;
12+
import edu.rosehulman.cjjb.javaModel.Class;
13+
import edu.rosehulman.cjjb.javaModel.modifier.IModifier;
14+
import edu.rosehulman.cjjb.javaModel.modifier.PrivateModifier;
15+
import edu.rosehulman.cjjb.javaModel.modifier.PublicModifier;
16+
import edu.rosehulman.cjjb.javaModel.modifier.StaticModifier;;
17+
18+
public class SingletonTesting {
19+
20+
@Test
21+
public void testCheckForStaticFieldInstance() {
22+
IModelStructureBooleanCheck singleCheck = new SingletonCheck();
23+
Set<String> classes = new HashSet<String>();
24+
classes.add("sampleClasses.Singleton");
25+
JavaModel model = new JavaModel(classes);
26+
Class struct = new Class("sampleClasses.Singleton");
27+
assertTrue(!singleCheck.check(model, struct));
28+
29+
LinkedList<IModifier> modifiers = new LinkedList<IModifier>();
30+
modifiers.add(new StaticModifier());
31+
struct.addSubElement(new Field(struct, "instance", new PrivateModifier(), modifiers, struct));
32+
model.putStructure("sampleClasses.Singleton", struct);
33+
34+
assertTrue(singleCheck.check(model, struct));
35+
}
36+
37+
@Test
38+
public void testCheckForGetInstanceMethod() {
39+
IModelStructureBooleanCheck singleCheck = new SingletonCheck();
40+
Set<String> classes = new HashSet<String>();
41+
classes.add("sampleClasses.Singleton");
42+
JavaModel model = new JavaModel(classes);
43+
Class struct = new Class("sampleClasses.Singleton");
44+
45+
LinkedList<IModifier> list = new LinkedList<IModifier>();
46+
list.add(new StaticModifier());
47+
struct.addSubElement(new Method(struct, "getInstance", new PublicModifier(), list,
48+
struct, new LinkedList<AbstractJavaStructure>(), false));
49+
model.putStructure("sampleClasses.Singleton", struct);
50+
51+
assertTrue(singleCheck.check(model, struct));
52+
}
53+
54+
}

test/sampleClasses/Singleton.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package sampleClasses;
2+
3+
public class Singleton {
4+
5+
private static Singleton instance = new Singleton();
6+
7+
public static Singleton getInstance() {
8+
return instance;
9+
}
10+
11+
}

0 commit comments

Comments
 (0)