/* * 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.cache.spi; import org.junit.Test; import org.hibernate.cache.spi.access.AccessType; import org.hibernate.cache.spi.access.UnknownAccessTypeException; import org.hibernate.testing.TestForIssue; import static org.junit.Assert.assertSame; import static org.junit.Assert.fail; /** * @author Gail Badner */ public class CacheAccessTypeTest { @Test @TestForIssue( jiraKey = "HHH-9844") public void testExplicitExternalNames() { assertSame( AccessType.READ_ONLY, AccessType.fromExternalName( "read-only" ) ); assertSame( AccessType.READ_WRITE, AccessType.fromExternalName( "read-write" ) ); assertSame( AccessType.NONSTRICT_READ_WRITE, AccessType.fromExternalName( "nonstrict-read-write" ) ); assertSame( AccessType.TRANSACTIONAL, AccessType.fromExternalName( "transactional" ) ); } @Test @TestForIssue( jiraKey = "HHH-9844") public void testEnumNames() { assertSame( AccessType.READ_ONLY, AccessType.fromExternalName( "READ_ONLY" ) ); assertSame( AccessType.READ_WRITE, AccessType.fromExternalName( "READ_WRITE" ) ); assertSame( AccessType.NONSTRICT_READ_WRITE, AccessType.fromExternalName( "NONSTRICT_READ_WRITE" ) ); assertSame( AccessType.TRANSACTIONAL, AccessType.fromExternalName( "TRANSACTIONAL" ) ); } @Test @TestForIssue( jiraKey = "HHH-9844") public void testLowerCaseEnumNames() { assertSame( AccessType.READ_ONLY, AccessType.fromExternalName( "read_only" ) ); assertSame( AccessType.READ_WRITE, AccessType.fromExternalName( "read_write" ) ); assertSame( AccessType.NONSTRICT_READ_WRITE, AccessType.fromExternalName( "nonstrict_read_write" ) ); assertSame( AccessType.TRANSACTIONAL, AccessType.fromExternalName( "transactional" ) ); } @Test @TestForIssue( jiraKey = "HHH-9844") public void testUpperCaseWithHyphens() { try { AccessType.fromExternalName( "READ-ONLY" ); fail( "should have failed because upper-case using hyphans is not supported." ); } catch (UnknownAccessTypeException ex) { // expected } try { AccessType.fromExternalName( "READ-WRITE" ); fail( "should have failed because upper-case using hyphans is not supported." ); } catch (UnknownAccessTypeException ex) { // expected } try { AccessType.fromExternalName( "NONSTRICT-READ-WRITE" ); fail( "should have failed because upper-case using hyphans is not supported." ); } catch (UnknownAccessTypeException ex) { // expected } } }