// Copyright 2009 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package com.google.enterprise.connector.util.diffing; import com.google.enterprise.connector.util.diffing.DiffingConnectorCheckpoint; import junit.framework.TestCase; /** * Tests for {@link DiffingConnectorCheckpoint}. */ public class DiffingConnectorCheckpointTest extends TestCase { public void testNewFirst() throws Exception { DiffingConnectorCheckpoint fccp = DiffingConnectorCheckpoint.newFirst(); assertEquals(0, fccp.getMajorNumber()); assertEquals(0, fccp.getMinorNumber()); assertTrue(fccp.compareTo(fccp) == 0); assertEquals(fccp, fccp); DiffingConnectorCheckpoint fccp2 = DiffingConnectorCheckpoint.fromJsonString(fccp.toString()); assertEquals(fccp, fccp2); assertEquals(fccp.hashCode(), fccp2.hashCode()); assertTrue(fccp.compareTo(fccp2) == 0); } public void testNext() throws Exception { DiffingConnectorCheckpoint fccp = DiffingConnectorCheckpoint.newFirst(); DiffingConnectorCheckpoint fccpN = fccp.next(); assertEquals(fccp.getMajorNumber(), fccpN.getMajorNumber()); assertEquals(fccp.getMinorNumber() + 1, fccpN.getMinorNumber()); assertFalse(fccp.equals(fccpN)); DiffingConnectorCheckpoint fccpN2 = DiffingConnectorCheckpoint.fromJsonString(fccpN.toString()); assertEquals(fccpN, fccpN2); assertEquals(fccpN.hashCode(), fccpN2.hashCode()); assertTrue(fccp.compareTo(fccpN) < 0); assertTrue(fccpN.compareTo(fccp) > 0); } public void testNextMajor() throws Exception { DiffingConnectorCheckpoint fccp = DiffingConnectorCheckpoint.newFirst(); DiffingConnectorCheckpoint fccpN = fccp.next(); DiffingConnectorCheckpoint fccpNextMajor = fccpN.nextMajor(); assertEquals(fccp.getMajorNumber() + 1, fccpNextMajor.getMajorNumber()); assertEquals(fccp.getMinorNumber(), fccpNextMajor.getMinorNumber()); assertFalse(fccp.equals(fccpNextMajor)); DiffingConnectorCheckpoint fccpNextMajor2 = DiffingConnectorCheckpoint.fromJsonString(fccpNextMajor.toString()); assertEquals(fccpNextMajor, fccpNextMajor2); assertEquals(fccpNextMajor.hashCode(), fccpNextMajor2.hashCode()); assertTrue(fccp.compareTo(fccpNextMajor) < 0); assertTrue(fccpN.compareTo(fccpNextMajor) < 0); assertTrue(fccpNextMajor.compareTo(fccp) > 0); assertTrue(fccpNextMajor.compareTo(fccpN) > 0); assertTrue(fccpNextMajor.compareTo(fccpNextMajor2) == 0); } public void testBadValue() throws Exception { try { DiffingConnectorCheckpoint.fromJsonString("I am no File Connector Checkpoint"); fail(); } catch (IllegalArgumentException iae) { // Expected. } } }