/**
* Copyright 2016 Hortonworks.
*
* 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.hortonworks.registries.storage.impl.memory;
import com.hortonworks.registries.storage.AbstractStoreManagerTest;
import com.hortonworks.registries.storage.Storable;
import com.hortonworks.registries.storage.StorableTest;
import com.hortonworks.registries.storage.StorageManager;
import org.junit.Assert;
import org.junit.Test;
import java.sql.SQLException;
import java.util.Collection;
public abstract class AbstractInMemoryStorageManagerTest extends AbstractStoreManagerTest {
private final StorageManager storageManager = new InMemoryStorageManager();
@Override
public StorageManager getStorageManager() {
return storageManager;
}
@Test
public void testList_NonexistentNameSpace_StorageException() {
Collection<Storable> found = getStorageManager().list("NONEXISTENT_NAME_SPACE");
Assert.assertTrue(found.isEmpty());
}
protected void doTestNextId_AutoincrementColumn_IdPlusOne(StorableTest test) throws SQLException {
Long actualNextId = getStorageManager().nextId(test.getNameSpace());
Long expectedNextId = actualNextId;
// increment two numbers for InmemoryManager as nextId() always increments.
expectedNextId += 2;
addAndAssertNextId(test, 0, expectedNextId);
expectedNextId += 2;
addAndAssertNextId(test, 2, expectedNextId);
addAndAssertNextId(test, 2, ++expectedNextId);
expectedNextId += 2;
addAndAssertNextId(test, 3, expectedNextId);
}
}