blob: abd72d850d10ab97a293846462ae1afe8dacf6b7 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.sqoop.orm;
import org.apache.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));
}
}