// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.apidb.v0_6.impl; import org.junit.Test; import org.openstreetmap.osmosis.apidb.common.DatabaseContext; import org.openstreetmap.osmosis.core.domain.v0_6.OsmUser; import org.openstreetmap.osmosis.testutil.AbstractDataTest; /** * Tests for the changeset manager class. * * @author Brett Henderson */ public class ChangesetManagerTest extends AbstractDataTest { private final DatabaseUtilities dbUtils = new DatabaseUtilities(dataUtils); /** * Tests the changeset manager. */ @Test public void testChangeset() { OsmUser user; long changesetId; user = new OsmUser(1, "user"); changesetId = 2; try (DatabaseContext dbCtx = dbUtils.createDatabaseContext()) { // Reset the database to a clean state. dbUtils.truncateDatabase(); try (UserManager userManager = new UserManager(dbCtx)) { userManager.addOrUpdateUser(user); } try (ChangesetManager changesetManager = new ChangesetManager(dbCtx)) { // Create the changeset in the database. changesetManager.addChangesetIfRequired(changesetId, user); // Make the same call which should just return if the changeset is already known. changesetManager.addChangesetIfRequired(changesetId, user); } // Create a new instance of the manager to verify that it copes with a non-cached changeset. try (ChangesetManager changesetManager = new ChangesetManager(dbCtx)) { changesetManager.addChangesetIfRequired(changesetId, user); } } } }