Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static java.util.Arrays.asList;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.util.ArrayList;
Expand Down Expand Up @@ -74,7 +75,24 @@ public void resolveTypeSignature_should_ignore_main_type_annotations() throws Ex
assertThat(dependencies.resolveTypeSignature("@NonNull Comparator<String>")).isEqualTo("java.util.Comparator");
}

// TODO see what to do with array types (should not be mockable...)
@Test
public void should_ignore_array_types() throws Exception
{
// given
when(dependencyInjectionPointStore.getConstructors()).thenReturn(Collections.<IMethod> emptySet());
when(dependencyInjectionPointStore.getSetters()).thenReturn(Collections.<IMethod> emptySet());

IField field = mock(IField.class);
when(field.getTypeSignature()).thenReturn("[Ljava.lang.String;");

when(dependencyInjectionPointStore.getFields()).thenReturn(Collections.singleton(field));

// when
dependencies.init();

// then
assertThat(dependencies.injectableByField()).isEmpty();
}

@Test
public void resolveTypeParameters_should_return_an_empty_list_when_there_are_no_type_parameters() throws Exception
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ private void initContructorDependencies() throws JavaModelException
for (int i = 0; i < parameterNames.length; i++)
{
Dependency dependency = createConstructorDependency(parameterTypes[i], parameterNames[i]);
if(! contains(dependency))
if(dependency != null && ! contains(dependency))
{
constructorDependencies.add(dependency);
add(dependency);
Expand All @@ -83,6 +83,10 @@ private void initContructorDependencies() throws JavaModelException

private Dependency createConstructorDependency(String parameterType, String parameterName) throws JavaModelException
{
if (Signature.getArrayCount(parameterType) > 0)
{
return null;
}
String signature = Signature.toString(parameterType);
String dependencyName = namingRules.cleanParameterName(parameterName);
return new Dependency(resolveTypeSignature(signature), dependencyName, resolveTypeParameters(signature));
Expand All @@ -93,7 +97,7 @@ private void initSetterDependencies() throws JavaModelException
for (IMethod method : injectionPointProvider.getSetters())
{
SetterDependency dependency = createSetterDependency(method);
if(! contains(dependency))
if(dependency != null && ! contains(dependency))
{
setterDependencies.add(dependency);
add(dependency);
Expand All @@ -103,7 +107,12 @@ private void initSetterDependencies() throws JavaModelException

private SetterDependency createSetterDependency(IMethod method) throws JavaModelException
{
String signature = Signature.toString(method.getParameterTypes()[0]);
String parameterType = method.getParameterTypes()[0];
if (Signature.getArrayCount(parameterType) > 0)
{
return null;
}
String signature = Signature.toString(parameterType);
return new SetterDependency(resolveTypeSignature(signature), method.getElementName(), resolveTypeParameters(signature));
}

Expand Down Expand Up @@ -131,7 +140,7 @@ private void initFieldDependencies() throws JavaModelException
for (IField field : injectionPointProvider.getFields())
{
FieldDependency dependency = createFieldDependency(field);
if(! contains(dependency))
if(dependency != null && ! contains(dependency))
{
fieldDependencies.add(dependency);
add(dependency);
Expand All @@ -141,7 +150,12 @@ private void initFieldDependencies() throws JavaModelException

private FieldDependency createFieldDependency(IField field) throws JavaModelException
{
String signature = Signature.toString(field.getTypeSignature());
String typeSignature = field.getTypeSignature();
if (Signature.getArrayCount(typeSignature) > 0)
{
return null;
}
String signature = Signature.toString(typeSignature);
String fieldName = field.getElementName();
String dependencyName = namingRules.cleanFieldName(fieldName);
return new FieldDependency(resolveTypeSignature(signature), fieldName, dependencyName, resolveTypeParameters(signature));
Expand Down
2 changes: 2 additions & 0 deletions run_test2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
xvfb-run mvn -f org.moreunit.build/pom.xml test -pl org.moreunit.plugins:org.moreunit.mock.test
Loading