/******************************************************************************
* Copyright (c) 2016 Oracle
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Konstantin Komissarchik - initial implementation and ongoing maintenance
******************************************************************************/
package org.eclipse.sapphire.tests.conversion.enumeration;
import org.eclipse.sapphire.MasterConversionService;
import org.eclipse.sapphire.Sapphire;
import org.eclipse.sapphire.tests.SapphireTestCase;
import org.junit.Test;
/**
* Tests MasterConversionService and the various conversions included with Sapphire.
*
* @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
*/
public final class EnumConversionTests extends SapphireTestCase
{
@Test
public void testStringToEnum_Plain() throws Exception
{
final MasterConversionService service = Sapphire.service( MasterConversionService.class );
assertEquals( ThreeChoiceAnswer.YES, service.convert( "YES", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.YES, service.convert( "yes", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.YES, service.convert( "yEs", ThreeChoiceAnswer.class ) );
assertNull( service.convert( "1", ThreeChoiceAnswer.class ) );
assertNull( service.convert( "true", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.MAYBE, service.convert( "MAYBE", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.MAYBE, service.convert( "maybe", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.MAYBE, service.convert( "mAyBe", ThreeChoiceAnswer.class ) );
assertNull( service.convert( "0", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.NO, service.convert( "NO", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.NO, service.convert( "no", ThreeChoiceAnswer.class ) );
assertEquals( ThreeChoiceAnswer.NO, service.convert( "nO", ThreeChoiceAnswer.class ) );
assertNull( service.convert( "-1", ThreeChoiceAnswer.class ) );
assertNull( service.convert( "false", ThreeChoiceAnswer.class ) );
}
@Test
public void testStringToEnum_Customized() throws Exception
{
final MasterConversionService service = Sapphire.service( MasterConversionService.class );
assertEquals( ThreeChoiceAnswerCustomized.YES, service.convert( "YES", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.YES, service.convert( "yes", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.YES, service.convert( "yEs", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.YES, service.convert( "1", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.YES, service.convert( "TRUE", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.YES, service.convert( "true", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.YES, service.convert( "tRuE", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.MAYBE, service.convert( "MAYBE", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.MAYBE, service.convert( "maybe", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.MAYBE, service.convert( "mAyBe", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.MAYBE, service.convert( "0", ThreeChoiceAnswerCustomized.class ) );
assertNull( service.convert( "NO", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.NO, service.convert( "no", ThreeChoiceAnswerCustomized.class ) );
assertNull( service.convert( "nO", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.NO, service.convert( "-1", ThreeChoiceAnswerCustomized.class ) );
assertNull( service.convert( "FALSE", ThreeChoiceAnswerCustomized.class ) );
assertEquals( ThreeChoiceAnswerCustomized.NO, service.convert( "false", ThreeChoiceAnswerCustomized.class ) );
assertNull( service.convert( "fAlSe", ThreeChoiceAnswerCustomized.class ) );
}
@Test
public void testStringToEnum_ToString() throws Exception
{
final MasterConversionService service = Sapphire.service( MasterConversionService.class );
assertEquals( ThreeChoiceAnswerToString.YES, service.convert( "YES", ThreeChoiceAnswerToString.class ) );
assertEquals( ThreeChoiceAnswerToString.MAYBE, service.convert( "MAYBE", ThreeChoiceAnswerToString.class ) );
assertEquals( ThreeChoiceAnswerToString.NO, service.convert( "NO", ThreeChoiceAnswerToString.class ) );
assertNull( service.convert( "1", ThreeChoiceAnswerToString.class ) );
assertNull( service.convert( "0", ThreeChoiceAnswerToString.class ) );
assertNull( service.convert( "-1", ThreeChoiceAnswerToString.class ) );
}
@Test
public void testEnumToString_Plain() throws Exception
{
final MasterConversionService service = Sapphire.service( MasterConversionService.class );
assertEquals( "YES", service.convert( ThreeChoiceAnswer.YES, String.class ) );
assertEquals( "MAYBE", service.convert( ThreeChoiceAnswer.MAYBE, String.class ) );
assertEquals( "NO", service.convert( ThreeChoiceAnswer.NO, String.class ) );
}
@Test
public void testEnumToString_Customized() throws Exception
{
final MasterConversionService service = Sapphire.service( MasterConversionService.class );
assertEquals( "yes", service.convert( ThreeChoiceAnswerCustomized.YES, String.class ) );
assertEquals( "maybe", service.convert( ThreeChoiceAnswerCustomized.MAYBE, String.class ) );
assertEquals( "no", service.convert( ThreeChoiceAnswerCustomized.NO, String.class ) );
}
@Test
public void testEnumToString_ToString() throws Exception
{
final MasterConversionService service = Sapphire.service( MasterConversionService.class );
assertEquals( "YES", service.convert( ThreeChoiceAnswerToString.YES, String.class ) );
assertEquals( "MAYBE", service.convert( ThreeChoiceAnswerToString.MAYBE, String.class ) );
assertEquals( "NO", service.convert( ThreeChoiceAnswerToString.NO, String.class ) );
}
}