package com.github.liblevenshtein.assertion;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import com.github.liblevenshtein.transducer.DistanceFunction;
import com.github.liblevenshtein.transducer.State;
import static com.github.liblevenshtein.assertion.DistanceFunctionAssertions.assertThat;
public class DistanceFunctionAssertionsTest {
private final ThreadLocal<DistanceFunction> distance = new ThreadLocal<>();
private final ThreadLocal<State> state = new ThreadLocal<>();
@BeforeMethod
public void setUp() {
distance.set(mock(DistanceFunction.class));
state.set(mock(State.class));
}
@Test
public void testHasDistance() {
when(distance.get().at(state.get(), 4)).thenReturn(2);
assertThat(distance.get()).hasDistance(state.get(), 4, 2);
}
@Test(expectedExceptions = AssertionError.class)
public void testHasDistanceAgainstViolation() {
when(distance.get().at(state.get(), 4)).thenReturn(2);
assertThat(distance.get()).hasDistance(state.get(), 4, 3);
}
}