package com.aconex.scrutineer; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import org.junit.Test; public class IdAndVersionConsistencyFailureTest { private static final String NOT_IN_SECONDARY_EXAMPLE = "NOTINSECONDARY\t123\t456"; private static final String NOT_IN_PRIMARY_EXAMPLE = "NOTINPRIMARY\t%s\t%d"; private static final String MISMATCH_EXAMPLE = "MISMATCH\t123\t456\tsecondaryVersion=3645"; @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionIfStringIsInvalid() { IdAndVersionConsistencyFailure.fromString("foo"); } @Test public void shouldParseNotInSecondaryFormat() { IdAndVersionConsistencyFailure idAndVersionConsistencyFailure = IdAndVersionConsistencyFailure.fromString(NOT_IN_SECONDARY_EXAMPLE); assertThat(idAndVersionConsistencyFailure.isNotInPrimary(), is(false)); assertThat(idAndVersionConsistencyFailure.isNotInSecondary(), is(true)); assertThat(idAndVersionConsistencyFailure.isMismatch(), is(false)); } @Test public void shouldReturnPrimaryId() { IdAndVersionConsistencyFailure idAndVersionConsistencyFailure = IdAndVersionConsistencyFailure.fromString(NOT_IN_SECONDARY_EXAMPLE); assertThat(idAndVersionConsistencyFailure.getPrimaryId(), is("123")); } @Test public void shouldReturnPrimaryVersion() { IdAndVersionConsistencyFailure idAndVersionConsistencyFailure = IdAndVersionConsistencyFailure.fromString(NOT_IN_SECONDARY_EXAMPLE); assertThat(idAndVersionConsistencyFailure.getPrimaryVersion(), is("456")); } @Test public void shouldParseNotInPrimaryFormat() { IdAndVersionConsistencyFailure idAndVersionConsistencyFailure = IdAndVersionConsistencyFailure.fromString(NOT_IN_PRIMARY_EXAMPLE); assertThat(idAndVersionConsistencyFailure.isNotInPrimary(), is(true)); assertThat(idAndVersionConsistencyFailure.isNotInSecondary(), is(false)); assertThat(idAndVersionConsistencyFailure.isMismatch(), is(false)); } @Test public void shouldParseMismatchFormat() { IdAndVersionConsistencyFailure idAndVersionConsistencyFailure = IdAndVersionConsistencyFailure.fromString(MISMATCH_EXAMPLE); assertThat(idAndVersionConsistencyFailure.isNotInPrimary(), is(false)); assertThat(idAndVersionConsistencyFailure.isNotInSecondary(), is(false)); assertThat(idAndVersionConsistencyFailure.isMismatch(), is(true)); } }