package com.codiform.moo;
import org.junit.Assert;
import org.junit.Test;
import com.codiform.moo.curry.Translate;
public class PropertyExclusionTest {
@Test
public void testDoesNotPopulateStaticFields() {
Source source = new Source( "Alpha", "No Static" );
DestinationWithStatic destination = Translate.to(DestinationWithStatic.class).from(source);
Assert.assertEquals( "Alpha", destination.getAlpha() );
Assert.assertNull( "Translator should not have populated static field.", DestinationWithStatic.getBeta() );
}
@Test
public void testDoesNotPopulateFinalFields() {
Source source = new Source( "Alpha", "No Static" );
DestinationWithFinal destination = Translate.to(DestinationWithFinal.class).from(source);
Assert.assertEquals( "Alpha", destination.getAlpha() );
Assert.assertNull( "Translator should not have populated final field.", destination.getBeta() );
}
public static class Source {
private String alpha;
private String beta;
public Source(String alpha, String beta) {
this.alpha = alpha;
this.beta = beta;
}
public String getAlpha() {
return alpha;
}
public String getBeta() {
return beta;
}
}
public static class DestinationWithStatic {
private static String beta;
private String alpha;
public String getAlpha() {
return alpha;
}
public static String getBeta() {
return beta;
}
}
public static class DestinationWithFinal {
private final String beta = null;
private String alpha;
public String getAlpha() {
return alpha;
}
public String getBeta() {
return beta;
}
}
}