blob: 6e91d31a12fc6ca35ae9e3d8b0d21ec9c362b274 [file] [log] [blame]
package org.apache.sqoop.orm;
import com.cloudera.sqoop.SqoopOptions;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
public class TestCompilationManager {
private CompilationManager compilationManager;
private SqoopOptions sqoopOptions;
@Before
public void before() {
sqoopOptions = mock(SqoopOptions.class);
compilationManager = new CompilationManager(sqoopOptions);
}
@Test
public void testPotentialOuterClassNameOfWithPlainClassName() {
String inputClassName = "FooBar";
String expectedOutput = inputClassName;
assertEquals(expectedOutput, compilationManager.potentialOuterClassNameOf(inputClassName));
}
@Test
public void testPotentialOuterClassNameOfWithClassNameEndingWithDollar() {
String inputClassName = "FooBar$";
String expectedOutput = "FooBar";
assertEquals(expectedOutput, compilationManager.potentialOuterClassNameOf(inputClassName));
}
@Test
public void testPotentialOuterClassNameOfWithInnerClassName() {
String inputClassName = "Foo$Bar";
String expectedOutput = "Foo";
assertEquals(expectedOutput, compilationManager.potentialOuterClassNameOf(inputClassName));
}
@Test
public void testPotentialOuterClassNameOfWithOuterClassNameContainingDollarSign() {
String inputClassName = "Foo$Bar$1";
String expectedOutput = "Foo$Bar";
assertEquals(expectedOutput, compilationManager.potentialOuterClassNameOf(inputClassName));
}
@Test
public void testPotentialOuterClassNameOfWithOuterClassNameEndingWithDollarSign() {
String inputClassName = "FooBar$$1";
String expectedOutput = "FooBar$";
assertEquals(expectedOutput, compilationManager.potentialOuterClassNameOf(inputClassName));
}
@Test
public void testIsInnerClassWithOuterClass() {
String inputSourceFileName = "Foo$Bar.java";
compilationManager.addSourceFile(inputSourceFileName);
boolean expectedOutput = false;
assertEquals(expectedOutput, compilationManager.isInnerClass(inputSourceFileName));
}
@Test
public void testIsInnerClassWithNonExistingClass() {
String inputSourceFileName = "ThisDoesNotExist.java";
boolean expectedOutput = false;
assertEquals(expectedOutput, compilationManager.isInnerClass(inputSourceFileName));
}
@Test
public void testIsInnerClassWithInnerClass() {
String inputSourceFileName = "Foo$Bar$1.java";
compilationManager.addSourceFile("Foo$Bar.java");
boolean expectedOutput = true;
assertEquals(expectedOutput, compilationManager.isInnerClass(inputSourceFileName));
}
@Test
public void testIsOuterClassWithExistingSourceFile() {
String inputSourceFileName = "OuterClass.java";
compilationManager.addSourceFile(inputSourceFileName);
boolean expectedOutput = true;
assertEquals(expectedOutput, compilationManager.isOuterClass(inputSourceFileName));
}
@Test
public void testIsOuterClassWithNonExistingSourceFile() {
String inputSourceFileName = "OuterClass.java";
boolean expectedOutput = false;
assertEquals(expectedOutput, compilationManager.isOuterClass(inputSourceFileName));
}
@Test
public void testIncludeFileInJarWithNonClassFile() {
String inputClassFileName = "FooBar.txt";
boolean expectedOutput = false;
assertEquals(expectedOutput, compilationManager.includeFileInJar(inputClassFileName));
}
@Test
public void testIncludeFileInJarWithSourceFilePresent() {
String inputClassFileName = "FooBar.class";
boolean expectedOutput = true;
compilationManager.addSourceFile("FooBar.java");
assertEquals(expectedOutput, compilationManager.includeFileInJar(inputClassFileName));
}
@Test
public void testIncludeFileInJarWithSourceFileNotPresent() {
String inputClassFileName = "FooBar.class";
boolean expectedOutput = false;
assertEquals(expectedOutput, compilationManager.includeFileInJar(inputClassFileName));
}
@Test
public void testIncludeFileInJarWithOuterClassSourceFilePresent() {
String inputClassFileName = "FooBar$1.class";
boolean expectedOutput = true;
compilationManager.addSourceFile("FooBar.java");
assertEquals(expectedOutput, compilationManager.includeFileInJar(inputClassFileName));
}
}