HHH-15768 Add test for issue

This commit is contained in:
Marco Belladelli 2022-12-13 18:04:42 +01:00 committed by Christian Beikov
parent 723ca11f34
commit 540b8ec684
1 changed files with 115 additions and 0 deletions

View File

@ -0,0 +1,115 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
*/
package org.hibernate.orm.test.jpa.persistenceunit;
import java.util.Collections;
import org.hibernate.cfg.AvailableSettings;
import org.hibernate.internal.log.DeprecationLogger;
import org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl;
import org.hibernate.jpa.boot.spi.Bootstrap;
import org.hibernate.jpa.boot.spi.EntityManagerFactoryBuilder;
import org.hibernate.testing.TestForIssue;
import org.hibernate.testing.logger.LogInspectionHelper;
import org.hibernate.testing.logger.TriggerOnPrefixLogListener;
import org.hibernate.testing.orm.jpa.PersistenceUnitInfoAdapter;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import jakarta.persistence.SharedCacheMode;
import jakarta.persistence.ValidationMode;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author Marco Belladelli
*/
@TestForIssue(jiraKey = "HHH-15768")
public class SharedCacheModeDeprecatedWarningTest {
private TriggerOnPrefixLogListener trigger;
@BeforeEach
public void setUp() {
trigger = new TriggerOnPrefixLogListener( "HHH90000021" );
LogInspectionHelper.registerListener( trigger, DeprecationLogger.DEPRECATION_LOGGER );
}
@AfterEach
public void tearDown() {
trigger.reset();
}
@AfterAll
public static void reset() {
LogInspectionHelper.clearAllListeners( DeprecationLogger.DEPRECATION_LOGGER );
}
@Test
public void testPersistenceUnitSharedCacheSetting() {
PersistenceUnitInfoAdapter adapter = new PersistenceUnitInfoAdapter() {
@Override
public SharedCacheMode getSharedCacheMode() {
return SharedCacheMode.UNSPECIFIED;
}
};
EntityManagerFactoryBuilder builder = Bootstrap.getEntityManagerFactoryBuilder( adapter, null );
builder.cancel();
assertFalse( trigger.wasTriggered(), "Log message was triggered" );
}
@Test
public void testPersistenceUnitValidationSetting() {
PersistenceUnitInfoAdapter adapter = new PersistenceUnitInfoAdapter() {
@Override
public ValidationMode getValidationMode() {
return ValidationMode.NONE;
}
};
EntityManagerFactoryBuilder builder = Bootstrap.getEntityManagerFactoryBuilder( adapter, null );
builder.cancel();
assertFalse( trigger.wasTriggered(), "Log message was triggered" );
}
@Test
public void testJakartaSharedCacheSetting() {
verifyCacheSetting( AvailableSettings.JAKARTA_SHARED_CACHE_MODE, SharedCacheMode.UNSPECIFIED );
assertFalse( trigger.wasTriggered(), "Log message was triggered" );
}
@Test
public void testJakartaValidationSetting() {
verifyCacheSetting( AvailableSettings.JAKARTA_VALIDATION_MODE, ValidationMode.NONE );
assertFalse( trigger.wasTriggered(), "Log message was triggered" );
}
@Test
public void testJpaSharedCacheSetting() {
verifyCacheSetting( AvailableSettings.JPA_SHARED_CACHE_MODE, SharedCacheMode.UNSPECIFIED );
assertTrue( trigger.wasTriggered(), "Log message was not triggered" );
}
@Test
public void testJpaValidationSetting() {
verifyCacheSetting( AvailableSettings.JPA_VALIDATION_MODE, ValidationMode.NONE );
assertTrue( trigger.wasTriggered(), "Log message was not triggered" );
}
private void verifyCacheSetting(String settingName, Object value) {
PersistenceUnitInfoAdapter empty = new PersistenceUnitInfoAdapter();
EntityManagerFactoryBuilderImpl builder;
builder = (EntityManagerFactoryBuilderImpl) Bootstrap.getEntityManagerFactoryBuilder(
empty,
Collections.singletonMap( settingName, value )
);
builder.cancel();
}
}