package com.flextrade.jfixture.customisation.fluent;
import com.flextrade.jfixture.CustomisationContainer;
import com.flextrade.jfixture.FluentCustomisation;
import com.flextrade.jfixture.customisation.AutoPropertyCustomisation;
import com.flextrade.jfixture.customisation.OmitAutoPropertyCustomisation;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.junit.Assert.assertSame;
import static org.mockito.Matchers.isA;
import static org.mockito.Mockito.verify;
public class TestAutoPropertyBehaviour {
private AutoPropertyBehaviour behaviour;
@Mock
private CustomisationContainer mockContainer;
@Mock
private FluentCustomisation mockFluentCustomisation;
@Before
public void initialise() {
MockitoAnnotations.initMocks(this);
this.behaviour = new AutoPropertyBehaviour (this.mockContainer, this.mockFluentCustomisation);
}
@Test
public void omit_specimen_adds_omit_auto_property_customisation() {
this.behaviour.omitSpecimen();
verify(this.mockContainer).customise(isA(OmitAutoPropertyCustomisation.class));
}
@Test
public void omit_specimen_returns_the_fluent_customisation() {
assertSame(this.mockFluentCustomisation, this.behaviour.omitSpecimen());
}
@Test
public void populate_specimen_adds_auto_property_customisation() {
this.behaviour.populateSpecimen();
verify(this.mockContainer).customise(isA(AutoPropertyCustomisation.class));
}
@Test
public void populate_specimen_returns_the_fluent_customisation() {
assertSame(this.mockFluentCustomisation, this.behaviour.populateSpecimen());
}
}