blob: 03d4b7b6501d92ea13f20041eda13d483249d05a [file] [log] [blame]
package com.github.javaparser.utils;
import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.visitor.ObjectIdentityEqualsVisitor;
import com.github.javaparser.ast.visitor.ObjectIdentityHashCodeVisitor;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class VisitorMapTest {
@Test
public void normalEqualsDoesDeepCompare() {
CompilationUnit x1 = JavaParser.parse("class X{}");
CompilationUnit x2 = JavaParser.parse("class X{}");
Map<CompilationUnit, Integer> map = new HashMap<>();
map.put(x1, 1);
map.put(x2, 2);
assertEquals(1, map.size());
}
@Test
public void objectIdentityEqualsDoesShallowCompare() {
CompilationUnit x1 = JavaParser.parse("class X{}");
CompilationUnit x2 = JavaParser.parse("class X{}");
Map<CompilationUnit, Integer> map = new VisitorMap<>(new ObjectIdentityHashCodeVisitor(), new ObjectIdentityEqualsVisitor());
map.put(x1, 1);
map.put(x2, 2);
assertEquals(2, map.size());
}
@Test
public void visitorMapGet(){
CompilationUnit x1 = JavaParser.parse("class X{}");
Map<CompilationUnit, Integer> map = new VisitorMap<>(new ObjectIdentityHashCodeVisitor(), new ObjectIdentityEqualsVisitor());
map.put(x1, 1);
assertEquals(1, (int)map.get(x1));
}
@Test
public void visitorMapContainsKey(){
CompilationUnit x1 = JavaParser.parse("class X{}");
Map<CompilationUnit, Integer> map = new VisitorMap<>(new ObjectIdentityHashCodeVisitor(), new ObjectIdentityEqualsVisitor());
map.put(x1, 1);
assertTrue(map.containsKey(x1));
}
@Test
public void visitorMapPutAll(){
CompilationUnit x1 = JavaParser.parse("class X{}");
CompilationUnit x2 = JavaParser.parse("class Y{}");
Map<CompilationUnit, Integer> map = new HashMap<>();
map.put(x1, 1);
map.put(x2, 2);
Map<CompilationUnit, Integer> visitorMap = new VisitorMap<>(new ObjectIdentityHashCodeVisitor(), new ObjectIdentityEqualsVisitor());
visitorMap.putAll(map);
assertEquals(2, visitorMap.size());
}
@Test
public void remove(){
CompilationUnit x1 = JavaParser.parse("class X{}");
VisitorMap<CompilationUnit, Integer> map = new VisitorMap<>(new ObjectIdentityHashCodeVisitor(), new ObjectIdentityEqualsVisitor());
map.put(x1, 1);
assertTrue(map.containsKey(x1));
map.remove(x1);
assertFalse(map.containsKey(x1));
}
}