package com.flextrade.jfixture.specifications; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; public class TestInverseSpecification { private InverseSpecification specification; private final Object request = new Object(); @Mock private Specification mockInnerSpecification; @Before public void initialise() { MockitoAnnotations.initMocks(this); this.specification = new InverseSpecification(this.mockInnerSpecification); } @Test public void returns_false_if_inner_specification_returns_true() { when(this.mockInnerSpecification.isSatisfiedBy(this.request)).thenReturn(true); boolean isSatisfied = this.specification.isSatisfiedBy(this.request); assertFalse(isSatisfied); } @Test public void returns_true_if_inner_specification_returns_false() { when(this.mockInnerSpecification.isSatisfiedBy(this.request)).thenReturn(false); boolean isSatisfied = this.specification.isSatisfiedBy(this.request); assertTrue(isSatisfied); } }