/*
* Copyright 2010-2011 the original author or authors.
*
* 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 org.springextensions.db4o.config;
import com.db4o.config.CommonConfiguration;
import com.db4o.config.ObjectClass;
import com.db4o.config.ObjectTranslator;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
/**
* author: olli
*/
public class ObjectClassConfigurerTest {
private CommonConfiguration commonConfiguration;
private CommonConfigurer commonConfigurer;
private ObjectClass objectClass;
private ObjectClassConfigurer objectClassConfigurer;
@BeforeMethod
public void setup() {
objectClass = mock(ObjectClass.class);
commonConfiguration = mock(CommonConfiguration.class);
when(commonConfiguration.objectClass(Object.class)).thenReturn(objectClass);
commonConfigurer = mock(CommonConfigurer.class);
when(commonConfigurer.getConfiguration()).thenReturn(commonConfiguration);
objectClassConfigurer = new ObjectClassConfigurer(commonConfigurer, Object.class);
}
@Test
public void testGetObjectClass() {
Assert.assertSame(objectClass, objectClassConfigurer.getObjectClass());
}
@Test
public void testSetCallConstructor() {
boolean callConstructor = true;
objectClassConfigurer.setCallConstructor(callConstructor);
verify(objectClass).callConstructor(callConstructor);
}
@Test
public void testSetCascadeOnActivate() {
boolean cascadeOnActivate = true;
objectClassConfigurer.setCascadeOnActivate(cascadeOnActivate);
verify(objectClass).cascadeOnActivate(cascadeOnActivate);
}
@Test
public void testSetCascadeOnDelete() {
boolean cascadeOnDelete = true;
objectClassConfigurer.setCascadeOnDelete(cascadeOnDelete);
verify(objectClass).cascadeOnDelete(cascadeOnDelete);
}
@Test
public void testSetCascadeOnUpdate() {
boolean cascadeOnUpdate = true;
objectClassConfigurer.setCascadeOnUpdate(cascadeOnUpdate);
verify(objectClass).cascadeOnUpdate(cascadeOnUpdate);
}
@Test
public void testSetGenerateUUIDs() {
boolean generateUUIDs = true;
objectClassConfigurer.setGenerateUUIDs(generateUUIDs);
verify(objectClass).generateUUIDs(generateUUIDs);
}
@Test
public void testSetIndexed() {
boolean indexed = true;
objectClassConfigurer.setIndexed(indexed);
verify(objectClass).indexed(indexed);
}
@Test
public void testSetMaximumActivationDepth() {
int maximumActivationDepth = 123;
objectClassConfigurer.setMaximumActivationDepth(maximumActivationDepth);
verify(objectClass).maximumActivationDepth(maximumActivationDepth);
}
@Test
public void testSetMinimumActivationDepth() {
int minimumActivationDepth = 12;
objectClassConfigurer.setMinimumActivationDepth(minimumActivationDepth);
verify(objectClass).minimumActivationDepth(minimumActivationDepth);
}
@Test
public void testSetPersistStaticFieldValuesToTrue() {
boolean persistStaticFieldValues = true;
objectClassConfigurer.setPersistStaticFieldValues(persistStaticFieldValues);
verify(objectClass).persistStaticFieldValues();
}
@Test
public void testSetPersistStaticFieldValuesToFalse() {
boolean persistStaticFieldValues = false;
objectClassConfigurer.setPersistStaticFieldValues(persistStaticFieldValues);
verify(objectClass, never()).persistStaticFieldValues();
}
@Test
public void testSetRename() {
String rename = "";
objectClassConfigurer.setRename(rename);
verify(objectClass).rename(rename);
}
@Test
public void testSetStoreTransientFields() {
boolean storeTransientFields = true;
objectClassConfigurer.setStoreTransientFields(storeTransientFields);
verify(objectClass).storeTransientFields(storeTransientFields);
}
@Test
public void testSetTranslate() {
ObjectTranslator objectTranslator = mock(ObjectTranslator.class);
objectClassConfigurer.setTranslate(objectTranslator);
verify(objectClass).translate(objectTranslator);
}
@Test
public void testSetUpdateDepth() {
int updateDepth = 1234;
objectClassConfigurer.setUpdateDepth(updateDepth);
verify(objectClass).updateDepth(updateDepth);
}
}