// 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.Change; import com.google.enterprise.connector.util.diffing.CheckpointAndChange; import com.google.enterprise.connector.util.diffing.DeleteDocumentHandle; import com.google.enterprise.connector.util.diffing.DeleteDocumentHandleFactory; import com.google.enterprise.connector.util.diffing.DiffingConnectorCheckpoint; import com.google.enterprise.connector.util.diffing.MonitorCheckpoint; import junit.framework.TestCase; import org.json.JSONObject; /** * Test for {@link CheckpointAndChange}. */ public class CheckpointAndChangeTest extends TestCase { private static final MonitorCheckpoint MCP = new MonitorCheckpoint("foo", 13, 9876543210L, 1234567890L); private DeleteDocumentHandleFactory internalFactory; private MockDocumentHandleFactory clientFactory; @Override public void setUp() { internalFactory = new DeleteDocumentHandleFactory(); clientFactory = new MockDocumentHandleFactory(); } public void testCheckpointAndChange_internal() throws Exception { DiffingConnectorCheckpoint fccp = DiffingConnectorCheckpoint.newFirst(); DeleteDocumentHandle ddh = new DeleteDocumentHandle("abc"); Change c = new Change(Change.FactoryType.INTERNAL, ddh, MCP); CheckpointAndChange checkpointAndChange = new CheckpointAndChange(fccp, c); String stringForm = checkpointAndChange.getJson().toString(); JSONObject json = new JSONObject(stringForm); CheckpointAndChange copy = new CheckpointAndChange(json, internalFactory, clientFactory); assertEquals(fccp, copy.getCheckpoint()); assertEquals(c.getMonitorCheckpoint(), copy.getChange().getMonitorCheckpoint()); assertEquals(c.getDocumentHandle().getDocumentId(), copy.getChange().getDocumentHandle().getDocumentId()); } public void testCheckpointAndChange_client() throws Exception { DiffingConnectorCheckpoint fccp = DiffingConnectorCheckpoint.newFirst(); MockDocumentHandle mdh = new MockDocumentHandle("abc", "data"); Change c = new Change(Change.FactoryType.CLIENT, mdh, MCP); CheckpointAndChange checkpointAndChange = new CheckpointAndChange(fccp, c); String stringForm = checkpointAndChange.getJson().toString(); JSONObject json = new JSONObject(stringForm); CheckpointAndChange copy = new CheckpointAndChange(json, internalFactory, clientFactory); assertEquals(fccp, copy.getCheckpoint()); assertEquals(c.getMonitorCheckpoint(), copy.getChange().getMonitorCheckpoint()); MockDocumentHandle mdhCopy = (MockDocumentHandle)copy.getChange().getDocumentHandle(); assertEquals(mdh.getDocumentId(), mdhCopy.getDocumentId()); assertEquals(mdh.getExtra(), mdhCopy.getExtra()); } }