Package org.eclipse.sapphire.tests.conversion

Source Code of org.eclipse.sapphire.tests.conversion.ConversionTests

/******************************************************************************
* Copyright (c) 2014 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;

import java.io.ByteArrayInputStream;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.URI;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.sapphire.FileName;
import org.eclipse.sapphire.MasterConversionService;
import org.eclipse.sapphire.Resource;
import org.eclipse.sapphire.Sapphire;
import org.eclipse.sapphire.Version;
import org.eclipse.sapphire.VersionConstraint;
import org.eclipse.sapphire.java.JavaIdentifier;
import org.eclipse.sapphire.modeling.ByteArrayResourceStore;
import org.eclipse.sapphire.modeling.Path;
import org.eclipse.sapphire.modeling.ResourceStore;
import org.eclipse.sapphire.modeling.xml.RootXmlResource;
import org.eclipse.sapphire.modeling.xml.XmlElement;
import org.eclipse.sapphire.modeling.xml.XmlResource;
import org.eclipse.sapphire.modeling.xml.XmlResourceStore;
import org.eclipse.sapphire.tests.SapphireTestCase;
import org.eclipse.sapphire.workspace.WorkspaceFileResourceStore;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
* Tests MasterConversionService and the various conversions included with Sapphire.
*
* @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
*/

public final class ConversionTests extends SapphireTestCase
{
    @Test
   
    public void testStringToBoolean() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( Boolean.TRUE, service.convert( "true", Boolean.class ) );
        assertEquals( Boolean.TRUE, service.convert( "TRUE", Boolean.class ) );
        assertEquals( Boolean.TRUE, service.convert( "True", Boolean.class ) );
        assertEquals( Boolean.TRUE, service.convert( "tRuE", Boolean.class ) );
       
        assertEquals( Boolean.FALSE, service.convert( "false", Boolean.class ) );
        assertEquals( Boolean.FALSE, service.convert( "FALSE", Boolean.class ) );
        assertEquals( Boolean.FALSE, service.convert( "False", Boolean.class ) );
        assertEquals( Boolean.FALSE, service.convert( "fAlSe", Boolean.class ) );
       
        assertNull( service.convert( "yes", Boolean.class ) );
        assertNull( service.convert( "no", Boolean.class ) );
        assertNull( service.convert( "0", Boolean.class ) );
        assertNull( service.convert( "1", Boolean.class ) );
        assertNull( service.convert( "abcdef", Boolean.class ) );
    }
   
    @Test

    public void testBooleanToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "true", service.convert( Boolean.TRUE, String.class ) );
        assertEquals( "false", service.convert( Boolean.FALSE, String.class ) );
    }
   
    @Test
   
    public void testStringToByte() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( Byte.valueOf( (byte) -128 ), service.convert( "-128", Byte.class ) );
        assertEquals( Byte.valueOf( (byte) -48 ), service.convert( "-48", Byte.class ) );
        assertEquals( Byte.valueOf( (byte) 0 ), service.convert( "0", Byte.class ) );
        assertEquals( Byte.valueOf( (byte) 47 ), service.convert( "47", Byte.class ) );
        assertEquals( Byte.valueOf( (byte) 127 ), service.convert( "127", Byte.class ) );
    }
   
    @Test

    public void testByteToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-128", service.convert( Byte.valueOf( (byte) -128 ), String.class ) );
        assertEquals( "-48", service.convert( Byte.valueOf( (byte) -48 ), String.class ) );
        assertEquals( "0", service.convert( Byte.valueOf( (byte) 0 ), String.class ) );
        assertEquals( "47", service.convert( Byte.valueOf( (byte) 47 ), String.class ) );
        assertEquals( "127", service.convert( Byte.valueOf( (byte) 127 ), String.class ) );
    }
   
    @Test
   
    public void testStringToShort() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( Short.valueOf( (short) -32768 ), service.convert( "-32768", Short.class ) );
        assertEquals( Short.valueOf( (short) -128 ), service.convert( "-128", Short.class ) );
        assertEquals( Short.valueOf( (short) -48 ), service.convert( "-48", Short.class ) );
        assertEquals( Short.valueOf( (short) 0 ), service.convert( "0", Short.class ) );
        assertEquals( Short.valueOf( (short) 47 ), service.convert( "47", Short.class ) );
        assertEquals( Short.valueOf( (short) 127 ), service.convert( "127", Short.class ) );
        assertEquals( Short.valueOf( (short) 32767 ), service.convert( "32767", Short.class ) );
    }
   
    @Test

    public void testShortToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-32768", service.convert( Short.valueOf( (short) -32768 ), String.class ) );
        assertEquals( "-128", service.convert( Short.valueOf( (short) -128 ), String.class ) );
        assertEquals( "-48", service.convert( Short.valueOf( (short) -48 ), String.class ) );
        assertEquals( "0", service.convert( Short.valueOf( (short) 0 ), String.class ) );
        assertEquals( "47", service.convert( Short.valueOf( (short) 47 ), String.class ) );
        assertEquals( "127", service.convert( Short.valueOf( (short) 127 ), String.class ) );
        assertEquals( "32767", service.convert( Short.valueOf( (short) 32767 ), String.class ) );
    }
   
    @Test

    public void testStringToInteger() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( Integer.valueOf( -2147483648 ), service.convert( "-2147483648", Integer.class ) );
        assertEquals( Integer.valueOf( -32768 ), service.convert( "-32768", Integer.class ) );
        assertEquals( Integer.valueOf( -128 ), service.convert( "-128", Integer.class ) );
        assertEquals( Integer.valueOf( -48 ), service.convert( "-48", Integer.class ) );
        assertEquals( Integer.valueOf( 0 ), service.convert( "0", Integer.class ) );
        assertEquals( Integer.valueOf( 47 ), service.convert( "47", Integer.class ) );
        assertEquals( Integer.valueOf( 127 ), service.convert( "127", Integer.class ) );
        assertEquals( Integer.valueOf( 32767 ), service.convert( "32767", Integer.class ) );
        assertEquals( Integer.valueOf( 2147483647 ), service.convert( "2147483647", Integer.class ) );
    }
   
    @Test

    public void testIntegerToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-2147483648", service.convert( Integer.valueOf( -2147483648 ), String.class ) );
        assertEquals( "-32768", service.convert( Integer.valueOf( -32768 ), String.class ) );
        assertEquals( "-128", service.convert( Integer.valueOf( -128 ), String.class ) );
        assertEquals( "-48", service.convert( Integer.valueOf( -48 ), String.class ) );
        assertEquals( "0", service.convert( Integer.valueOf( 0 ), String.class ) );
        assertEquals( "47", service.convert( Integer.valueOf( 47 ), String.class ) );
        assertEquals( "127", service.convert( Integer.valueOf( 127 ), String.class ) );
        assertEquals( "32767", service.convert( Integer.valueOf( 32767 ), String.class ) );
        assertEquals( "2147483647", service.convert( Integer.valueOf( 2147483647 ), String.class ) );
    }
   
    @Test
   
    public void testStringToLong() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( Long.valueOf( -9223372036854775808L ), service.convert( "-9223372036854775808", Long.class ) );
        assertEquals( Long.valueOf( -2147483648L ), service.convert( "-2147483648", Long.class ) );
        assertEquals( Long.valueOf( -32768L ), service.convert( "-32768", Long.class ) );
        assertEquals( Long.valueOf( -128L ), service.convert( "-128", Long.class ) );
        assertEquals( Long.valueOf( -48L ), service.convert( "-48", Long.class ) );
        assertEquals( Long.valueOf( 0L ), service.convert( "0", Long.class ) );
        assertEquals( Long.valueOf( 47L ), service.convert( "47", Long.class ) );
        assertEquals( Long.valueOf( 127L ), service.convert( "127", Long.class ) );
        assertEquals( Long.valueOf( 32767L ), service.convert( "32767", Long.class ) );
        assertEquals( Long.valueOf( 2147483647L ), service.convert( "2147483647", Long.class ) );
        assertEquals( Long.valueOf( 9223372036854775807L ), service.convert( "9223372036854775807", Long.class ) );
    }
   
    @Test

    public void testLongToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-9223372036854775808", service.convert( Long.valueOf( -9223372036854775808L ), String.class ) );
        assertEquals( "-2147483648", service.convert( Long.valueOf( -2147483648L ), String.class ) );
        assertEquals( "-32768", service.convert( Long.valueOf( -32768L ), String.class ) );
        assertEquals( "-128", service.convert( Long.valueOf( -128L ), String.class ) );
        assertEquals( "-48", service.convert( Long.valueOf( -48L ), String.class ) );
        assertEquals( "0", service.convert( Long.valueOf( 0L ), String.class ) );
        assertEquals( "47", service.convert( Long.valueOf( 47L ), String.class ) );
        assertEquals( "127", service.convert( Long.valueOf( 127L ), String.class ) );
        assertEquals( "32767", service.convert( Long.valueOf( 32767L ), String.class ) );
        assertEquals( "2147483647", service.convert( Long.valueOf( 2147483647L ), String.class ) );
        assertEquals( "9223372036854775807", service.convert( Long.valueOf( 9223372036854775807L ), String.class ) );
    }
   
    @Test
   
    public void testStringToFloat() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( Float.valueOf( -15.773523F ), service.convert( "-15.773523", Float.class ) );
        assertEquals( Float.valueOf( 0.0F ), service.convert( "0.0", Float.class ) );
        assertEquals( Float.valueOf( 15.773523F ), service.convert( "15.773523", Float.class ) );
    }
   
    @Test

    public void testFloatToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-15.773523", service.convert( Float.valueOf( -15.773523F ), String.class ) );
        assertEquals( "0.0", service.convert( Float.valueOf( 0.0F ), String.class ) );
        assertEquals( "15.773523", service.convert( Float.valueOf( 15.773523F ), String.class ) );
    }
   
    @Test
   
    public void testStringToDouble() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( Double.valueOf( -15.773523D ), service.convert( "-15.773523", Double.class ) );
        assertEquals( Double.valueOf( 0.0D ), service.convert( "0.0", Double.class ) );
        assertEquals( Double.valueOf( 15.773523D ), service.convert( "15.773523", Double.class ) );
    }
   
    @Test

    public void testDoubleToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-15.773523", service.convert( Double.valueOf( -15.773523D ), String.class ) );
        assertEquals( "0.0", service.convert( Double.valueOf( 0.0D ), String.class ) );
        assertEquals( "15.773523", service.convert( Double.valueOf( 15.773523D ), String.class ) );
    }
   
    @Test
   
    public void testStringToBigInteger() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new BigInteger( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808" ), service.convert( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808", BigInteger.class ) );
        assertEquals( new BigInteger( "-9223372036854775808" ), service.convert( "-9223372036854775808", BigInteger.class ) );
        assertEquals( new BigInteger( "-2147483648" ), service.convert( "-2147483648", BigInteger.class ) );
        assertEquals( new BigInteger( "-32768" ), service.convert( "-32768", BigInteger.class ) );
        assertEquals( new BigInteger( "-128" ), service.convert( "-128", BigInteger.class ) );
        assertEquals( new BigInteger( "-48" ), service.convert( "-48", BigInteger.class ) );
        assertEquals( new BigInteger( "0" ), service.convert( "0", BigInteger.class ) );
        assertEquals( new BigInteger( "47" ), service.convert( "47", BigInteger.class ) );
        assertEquals( new BigInteger( "127" ), service.convert( "127", BigInteger.class ) );
        assertEquals( new BigInteger( "32767" ), service.convert( "32767", BigInteger.class ) );
        assertEquals( new BigInteger( "2147483647" ), service.convert( "2147483647", BigInteger.class ) );
        assertEquals( new BigInteger( "9223372036854775807" ), service.convert( "9223372036854775807", BigInteger.class ) );
        assertEquals( new BigInteger( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807" ), service.convert( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807", BigInteger.class ) );
    }
   
    @Test

    public void testBigIntegerToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808", service.convert( new BigInteger( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808" ), String.class ) );
        assertEquals( "-9223372036854775808", service.convert( new BigInteger( "-9223372036854775808" ), String.class ) );
        assertEquals( "-2147483648", service.convert( new BigInteger( "-2147483648" ), String.class ) );
        assertEquals( "-32768", service.convert( new BigInteger( "-32768" ), String.class ) );
        assertEquals( "-128", service.convert( new BigInteger( "-128" ), String.class ) );
        assertEquals( "-48", service.convert( new BigInteger( "-48" ), String.class ) );
        assertEquals( "0", service.convert( new BigInteger( "0" ), String.class ) );
        assertEquals( "47", service.convert( new BigInteger( "47" ), String.class ) );
        assertEquals( "127", service.convert( new BigInteger( "127" ), String.class ) );
        assertEquals( "32767", service.convert( new BigInteger( "32767" ), String.class ) );
        assertEquals( "2147483647", service.convert( new BigInteger( "2147483647" ), String.class ) );
        assertEquals( "9223372036854775807", service.convert( new BigInteger( "9223372036854775807" ), String.class ) );
        assertEquals( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807", service.convert( new BigInteger( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807" ), String.class ) );
    }
   
    @Test
   
    public void testStringToBigDecimal() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new BigDecimal( "-922337203685477580892233720368547758089223372036854775808.92233720368547758089223372036854775808" ), service.convert( "-922337203685477580892233720368547758089223372036854775808.92233720368547758089223372036854775808", BigDecimal.class ) );
        assertEquals( new BigDecimal( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808" ), service.convert( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808", BigDecimal.class ) );
        assertEquals( new BigDecimal( "-9223372036854775808" ), service.convert( "-9223372036854775808", BigDecimal.class ) );
        assertEquals( new BigDecimal( "-2147483648" ), service.convert( "-2147483648", BigDecimal.class ) );
        assertEquals( new BigDecimal( "-32768" ), service.convert( "-32768", BigDecimal.class ) );
        assertEquals( new BigDecimal( "-128" ), service.convert( "-128", BigDecimal.class ) );
        assertEquals( new BigDecimal( "-48" ), service.convert( "-48", BigDecimal.class ) );
        assertEquals( new BigDecimal( "0" ), service.convert( "0", BigDecimal.class ) );
        assertEquals( new BigDecimal( "47" ), service.convert( "47", BigDecimal.class ) );
        assertEquals( new BigDecimal( "127" ), service.convert( "127", BigDecimal.class ) );
        assertEquals( new BigDecimal( "32767" ), service.convert( "32767", BigDecimal.class ) );
        assertEquals( new BigDecimal( "2147483647" ), service.convert( "2147483647", BigDecimal.class ) );
        assertEquals( new BigDecimal( "9223372036854775807" ), service.convert( "9223372036854775807", BigDecimal.class ) );
        assertEquals( new BigDecimal( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807" ), service.convert( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807", BigDecimal.class ) );
        assertEquals( new BigDecimal( "922337203685477580792233720368547758079223372036854775807.92233720368547758079223372036854775807" ), service.convert( "922337203685477580792233720368547758079223372036854775807.92233720368547758079223372036854775807", BigDecimal.class ) );
    }
   
    @Test

    public void testBigDecimalToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "-922337203685477580892233720368547758089223372036854775808.92233720368547758089223372036854775808", service.convert( new BigDecimal( "-922337203685477580892233720368547758089223372036854775808.92233720368547758089223372036854775808" ), String.class ) );
        assertEquals( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808", service.convert( new BigDecimal( "-92233720368547758089223372036854775808922337203685477580892233720368547758089223372036854775808" ), String.class ) );
        assertEquals( "-9223372036854775808", service.convert( new BigDecimal( "-9223372036854775808" ), String.class ) );
        assertEquals( "-2147483648", service.convert( new BigDecimal( "-2147483648" ), String.class ) );
        assertEquals( "-32768", service.convert( new BigDecimal( "-32768" ), String.class ) );
        assertEquals( "-128", service.convert( new BigDecimal( "-128" ), String.class ) );
        assertEquals( "-48", service.convert( new BigDecimal( "-48" ), String.class ) );
        assertEquals( "0", service.convert( new BigDecimal( "0" ), String.class ) );
        assertEquals( "47", service.convert( new BigDecimal( "47" ), String.class ) );
        assertEquals( "127", service.convert( new BigDecimal( "127" ), String.class ) );
        assertEquals( "32767", service.convert( new BigDecimal( "32767" ), String.class ) );
        assertEquals( "2147483647", service.convert( new BigDecimal( "2147483647" ), String.class ) );
        assertEquals( "9223372036854775807", service.convert( new BigDecimal( "9223372036854775807" ), String.class ) );
        assertEquals( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807", service.convert( new BigDecimal( "92233720368547758079223372036854775807922337203685477580792233720368547758079223372036854775807" ), String.class ) );
        assertEquals( "922337203685477580792233720368547758079223372036854775807.92233720368547758079223372036854775807", service.convert( new BigDecimal( "922337203685477580792233720368547758079223372036854775807.92233720368547758079223372036854775807" ), String.class ) );
    }
   
    @Test

    public void testStringToDate() throws Exception
    {
        MasterConversionService service;
       
        service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new SimpleDateFormat( "yyyy-MM-dd" ).parse( "2013-01-15" ), service.convert( "2013-01-15", Date.class ) );
        assertEquals( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss" ).parse( "2013-01-15T18:38:24" ), service.convert( "2013-01-15T18:38:24", Date.class ) );
        assertNull( service.convert( "2013.01.15", Date.class ) );
       
        DateConversionTestElement element = DateConversionTestElement.TYPE.instantiate();
       
        service = element.property( DateConversionTestElement.PROP_DATE_1 ).service( MasterConversionService.class );
       
        assertEquals( new SimpleDateFormat( "yyyy-MM-dd" ).parse( "2013-01-15" ), service.convert( "2013-01-15", Date.class ) );
        assertEquals( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss" ).parse( "2013-01-15T18:38:24" ), service.convert( "2013-01-15T18:38:24", Date.class ) );
        assertNull( service.convert( "2013.01.15", Date.class ) );
       
        service = element.property( DateConversionTestElement.PROP_DATE_2 ).service( MasterConversionService.class );
       
        assertEquals( new SimpleDateFormat( "yyyy-MM-dd" ).parse( "2013-01-15" ), service.convert( "2013.01.15", Date.class ) );
        assertEquals( new SimpleDateFormat( "yyyy-MM-dd" ).parse( "2013-01-15" ), service.convert( "01/15/2013", Date.class ) );
        assertNull( service.convert( "2013-01-15", Date.class ) );
    }
   
    @Test

    public void testDateToString() throws Exception
    {
        final SimpleDateFormat fullDateFormat = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss'.'SSSZ" );
        final Date date = fullDateFormat.parse( "2013-01-15T18:38:24.000-0800" );
        final DateConversionTestElement element = DateConversionTestElement.TYPE.instantiate();
       
        MasterConversionService service;
       
        service = Sapphire.service( MasterConversionService.class );
        assertEquals( fullDateFormat.format( date ), service.convert( date, String.class ) );

        service = element.property( DateConversionTestElement.PROP_DATE_1 ).service( MasterConversionService.class );
        assertEquals( fullDateFormat.format( date ), service.convert( date, String.class ) );
       
        service = element.property( DateConversionTestElement.PROP_DATE_2 ).service( MasterConversionService.class );
        assertEquals( "2013.01.15", service.convert( date, String.class ) );
    }
   
    @Test

    public void testStringToFileName() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new FileName( "abc" ), service.convert( "abc", FileName.class ) );
        assertEquals( new FileName( "abc.txt" ), service.convert( "abc.txt", FileName.class ) );
       
        assertNull( service.convert( "folder/abc.txt", FileName.class ) );
    }
   
    @Test

    public void testFileNameToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "abc", service.convert( new FileName( "abc" ), String.class ) );
        assertEquals( "abc.txt", service.convert( new FileName( "abc.txt" ), String.class ) );
    }
   
    @Test

    public void testStringToPath() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new Path( "abc" ), service.convert( "abc", Path.class ) );
        assertEquals( new Path( "abc.txt" ), service.convert( "abc.txt", Path.class ) );
        assertEquals( new Path( "folder/abc.txt" ), service.convert( "folder/abc.txt", Path.class ) );
        assertEquals( new Path( "x/y/z/folder/abc.txt" ), service.convert( "x/y/z/folder/abc.txt", Path.class ) );
    }
   
    @Test

    public void testPathToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "abc", service.convert( new Path( "abc" ), String.class ) );
        assertEquals( "abc.txt", service.convert( new Path( "abc.txt" ), String.class ) );
        assertEquals( "folder/abc.txt", service.convert( new Path( "folder/abc.txt" ), String.class ) );
        assertEquals( "x/y/z/folder/abc.txt", service.convert( new Path( "x/y/z/folder/abc.txt" ), String.class ) );
    }
   
    @Test

    public void testStringToUri() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new URI( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt" ), service.convert( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt", URI.class ) );
        assertEquals( new URI( "ftp://example.org/resource.txt" ), service.convert( "ftp://example.org/resource.txt", URI.class ) );
        assertEquals( new URI( "relative/path/to/resource.txt" ), service.convert( "relative/path/to/resource.txt", URI.class ) );
        assertEquals( new URI( "../../../resource.txt" ), service.convert( "../../../resource.txt", URI.class ) );
    }
   
    @Test

    public void testUriToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt", service.convert( new URI( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt" ), String.class ) );
        assertEquals( "ftp://example.org/resource.txt", service.convert( new URI( "ftp://example.org/resource.txt" ), String.class ) );
        assertEquals( "relative/path/to/resource.txt", service.convert( new URI( "relative/path/to/resource.txt" ), String.class ) );
        assertEquals( "../../../resource.txt", service.convert( new URI( "../../../resource.txt" ), String.class ) );
    }
   
    @Test

    public void testStringToUrl() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new URL( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt" ), service.convert( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt", URL.class ) );
        assertEquals( new URL( "ftp://example.org/resource.txt" ), service.convert( "ftp://example.org/resource.txt", URL.class ) );
       
        assertNull( service.convert( "relative/path/to/resource.txt", URL.class ) );
        assertNull( service.convert( "../../../resource.txt", URL.class ) );
    }
   
    @Test

    public void testUrlToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt", service.convert( new URL( "http://example.org/absolute/URI/with/absolute/path/to/resource.txt" ), String.class ) );
        assertEquals( "ftp://example.org/resource.txt", service.convert( new URL( "ftp://example.org/resource.txt" ), String.class ) );
    }
   
    @Test

    public void testStringToVersion() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new Version( "1" ), service.convert( "1", Version.class ) );
        assertEquals( new Version( "1.2" ), service.convert( "1.2", Version.class ) );
        assertEquals( new Version( "1.2.3" ), service.convert( "1.2.3", Version.class ) );
        assertEquals( new Version( "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20" ), service.convert( "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20", Version.class ) );
       
        assertNull( service.convert( "1..2", Version.class ) );
        assertNull( service.convert( "1.abc", Version.class ) );
    }
   
    @Test

    public void testVersionToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "1", service.convert( new Version( "1" ), String.class ) );
        assertEquals( "1.2", service.convert( new Version( "1.2" ), String.class ) );
        assertEquals( "1.2.3", service.convert( new Version( "1.2.3" ), String.class ) );
        assertEquals( "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20", service.convert( new Version( "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20" ), String.class ) );
    }
   
    @Test

    public void testStringToVersionConstraint() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new VersionConstraint( "1" ), service.convert( "1", VersionConstraint.class ) );
        assertEquals( new VersionConstraint( "1.2" ), service.convert( "1.2", VersionConstraint.class ) );
        assertEquals( new VersionConstraint( "1.2,3.4,5.6" ), service.convert( "1.2,3.4,5.6", VersionConstraint.class ) );
        assertEquals( new VersionConstraint( "[1.2-3.4)" ), service.convert( "[1.2-3.4)", VersionConstraint.class ) );
        assertEquals( new VersionConstraint( "[1.2-3.4),[5.6" ), service.convert( "[1.2-3.4),[5.6", VersionConstraint.class ) );
       
        assertNull( service.convert( "[1.2--3", VersionConstraint.class ) );
        assertNull( service.convert( "[1.2-3.4}", VersionConstraint.class ) );
    }
   
    @Test
   
    public void testVersionConstraintToString() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( "1", service.convert( new VersionConstraint( "1" ), String.class ) );
        assertEquals( "1.2", service.convert( new VersionConstraint( "1.2" ), String.class ) );
        assertEquals( "1.2,3.4,5.6", service.convert( new VersionConstraint( "1.2,3.4,5.6" ), String.class ) );
        assertEquals( "[1.2-3.4)", service.convert( new VersionConstraint( "[1.2-3.4)" ), String.class ) );
        assertEquals( "[1.2-3.4),[5.6", service.convert( new VersionConstraint( "[1.2-3.4),[5.6" ), String.class ) );
    }
   
    @Test
   
    public void testIFileToWorkspaceFileResourceStore() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
        final IProject project = project();
       
        final IFile xmlFile = project.getFile( "file.xml" );
        xmlFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final WorkspaceFileResourceStore xmlFileStore = service.convert( xmlFile, WorkspaceFileResourceStore.class );
        assertNotNull( xmlFileStore );
       
        final IFile txtFile = project.getFile( "file.txt" );
        txtFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final WorkspaceFileResourceStore txtFileStore = service.convert( txtFile, WorkspaceFileResourceStore.class );
        assertNotNull( txtFileStore );
       
        final IFile binFile = project.getFile( "file.bin" );
        binFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final WorkspaceFileResourceStore binFileStore = service.convert( binFile, WorkspaceFileResourceStore.class );
        assertNotNull( binFileStore );
    }
   
    @Test
   
    public void testIFileToByteArrayResourceStore() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
        final IProject project = project();
       
        final IFile xmlFile = project.getFile( "file.xml" );
        xmlFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final ByteArrayResourceStore xmlFileStore = service.convert( xmlFile, ByteArrayResourceStore.class );
        assertNotNull( xmlFileStore );
       
        final IFile txtFile = project.getFile( "file.txt" );
        txtFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final ByteArrayResourceStore txtFileStore = service.convert( txtFile, ByteArrayResourceStore.class );
        assertNotNull( txtFileStore );
       
        final IFile binFile = project.getFile( "file.bin" );
        binFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final ByteArrayResourceStore binFileStore = service.convert( binFile, ByteArrayResourceStore.class );
        assertNotNull( binFileStore );
    }
   
    @Test

    public void testIFileToResourceStore() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
        final IProject project = project();
       
        final IFile xmlFile = project.getFile( "file.xml" );
        xmlFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final ResourceStore xmlFileStore = service.convert( xmlFile, ResourceStore.class );
        assertNotNull( xmlFileStore );
       
        final IFile txtFile = project.getFile( "file.txt" );
        txtFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final ResourceStore txtFileStore = service.convert( txtFile, ResourceStore.class );
        assertNotNull( txtFileStore );
       
        final IFile binFile = project.getFile( "file.bin" );
        binFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final ResourceStore binFileStore = service.convert( binFile, ResourceStore.class );
        assertNotNull( binFileStore );
    }
   
    @Test

    public void testIFileToRootXmlResource() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
        final IProject project = project();
       
        final IFile xmlFile = project.getFile( "file.xml" );
        xmlFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final RootXmlResource xmlFileResource = service.convert( xmlFile, RootXmlResource.class );
        assertNotNull( xmlFileResource );

        final IFile txtFile = project.getFile( "file.txt" );
        txtFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final RootXmlResource txtFileStore = service.convert( txtFile, RootXmlResource.class );
        assertNull( txtFileStore );
    }
   
    @Test

    public void testIFileToXmlResource() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
        final IProject project = project();
       
        final IFile xmlFile = project.getFile( "file.xml" );
        xmlFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final XmlResource xmlFileResource = service.convert( xmlFile, XmlResource.class );
        assertNotNull( xmlFileResource );

        final IFile txtFile = project.getFile( "file.txt" );
        txtFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final XmlResource txtFileStore = service.convert( txtFile, XmlResource.class );
        assertNull( txtFileStore );
    }
   
    @Test

    public void testIFileToResource() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
        final IProject project = project();
       
        final IFile xmlFile = project.getFile( "file.xml" );
        xmlFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final Resource xmlFileResource = service.convert( xmlFile, Resource.class );
        assertNotNull( xmlFileResource );

        final IFile txtFile = project.getFile( "file.txt" );
        txtFile.create( new ByteArrayInputStream( new byte[ 0 ] ), true, null );
       
        final Resource txtFileStore = service.convert( txtFile, Resource.class );
        assertNull( txtFileStore );
    }
   
    @Test
   
    public void testModelElementToDomDocument() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        final XmlResourceStore xmlResourceStore = new XmlResourceStore();
        final RootXmlResource xmlResource = new RootXmlResource( xmlResourceStore );
        final XmlConversionTestElement elementOnXml = XmlConversionTestElement.TYPE.instantiate( xmlResource );

        final Document document = service.convert( elementOnXml, Document.class );
       
        assertNotNull( document );
        assertSame( document, xmlResource.getDomDocument() );
        assertSame( document, elementOnXml.adapt( Document.class ) );
        assertSame( document, elementOnXml.getList().insert().adapt( Document.class ) );
       
        final XmlConversionTestElement elementNotOnXml = XmlConversionTestElement.TYPE.instantiate();
       
        assertNull( service.convert( elementNotOnXml, Document.class ) );
        assertNull( service.convert( elementNotOnXml.getList().insert(), Document.class ) );
    }
   
    @Test

    public void testModelElementToDomElement() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        final XmlResourceStore xmlResourceStore = new XmlResourceStore();
        final RootXmlResource xmlResource = new RootXmlResource( xmlResourceStore );
        final XmlConversionTestElement elementOnXml = XmlConversionTestElement.TYPE.instantiate( xmlResource );
       
        xmlResource.save();

        final Element xmlElement = service.convert( elementOnXml, Element.class );
       
        assertNotNull( xmlElement );
        assertSame( xmlElement, xmlResource.getXmlElement().getDomNode() );
        assertSame( xmlElement, elementOnXml.adapt( Element.class ) );
       
        final XmlConversionTestElement.ListEntry childElement = elementOnXml.getList().insert();
        final Element childXmlElement = service.convert( childElement, Element.class );
       
        assertNotNull( childXmlElement );
        assertSame( childXmlElement, ( (XmlResource) childElement.resource() ).getXmlElement().getDomNode() );
        assertSame( childXmlElement, childElement.adapt( Element.class ) );
        assertNotSame( childXmlElement, xmlElement );
       
        final XmlConversionTestElement elementNotOnXml = XmlConversionTestElement.TYPE.instantiate();
       
        assertNull( service.convert( elementNotOnXml, Element.class ) );
        assertNull( service.convert( elementNotOnXml.getList().insert(), Element.class ) );
    }
   
    @Test
   
    public void testModelElementToXmlElement() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        final XmlResourceStore xmlResourceStore = new XmlResourceStore();
        final RootXmlResource xmlResource = new RootXmlResource( xmlResourceStore );
        final XmlConversionTestElement elementOnXml = XmlConversionTestElement.TYPE.instantiate( xmlResource );
       
        xmlResource.save();

        final XmlElement xmlElement = service.convert( elementOnXml, XmlElement.class );
       
        assertNotNull( xmlElement );
        assertSame( xmlElement, xmlResource.getXmlElement() );
        assertSame( xmlElement, elementOnXml.adapt( XmlElement.class ) );
       
        final XmlConversionTestElement.ListEntry childElement = elementOnXml.getList().insert();
        final XmlElement childXmlElement = service.convert( childElement, XmlElement.class );
       
        assertNotNull( childXmlElement );
        assertSame( childXmlElement, ( (XmlResource) childElement.resource() ).getXmlElement() );
        assertSame( childXmlElement, childElement.adapt( XmlElement.class ) );
        assertNotSame( childXmlElement, xmlElement );
       
        final XmlConversionTestElement elementNotOnXml = XmlConversionTestElement.TYPE.instantiate();
       
        assertNull( service.convert( elementNotOnXml, XmlElement.class ) );
        assertNull( service.convert( elementNotOnXml.getList().insert(), XmlElement.class ) );
    }
   
    @Test
   
    public void testXmlResourceToDomDocument() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        final XmlResourceStore xmlResourceStore = new XmlResourceStore();
        final RootXmlResource xmlResource = new RootXmlResource( xmlResourceStore );

        final Document document = service.convert( xmlResource, Document.class );
       
        assertNotNull( document );
        assertSame( document, xmlResource.getDomDocument() );
        assertSame( document, xmlResource.adapt( Document.class ) );
    }
   
    @Test
   
    public void testXmlResourceToDomElement() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        final XmlResourceStore xmlResourceStore = new XmlResourceStore();
        final RootXmlResource xmlResource = new RootXmlResource( xmlResourceStore );
        final XmlConversionTestElement elementOnXml = XmlConversionTestElement.TYPE.instantiate( xmlResource );
       
        xmlResource.save();

        final Element xmlElement = service.convert( xmlResource, Element.class );
       
        assertNotNull( xmlElement );
        assertSame( xmlElement, xmlResource.getXmlElement().getDomNode() );
        assertSame( xmlElement, xmlResource.adapt( Element.class ) );
       
        final XmlConversionTestElement.ListEntry childElement = elementOnXml.getList().insert();
        final Element childXmlElement = service.convert( childElement.resource(), Element.class );
        final XmlResource childXmlResource = (XmlResource) childElement.resource();
       
        assertNotNull( childXmlElement );
        assertSame( childXmlElement, childXmlResource.getXmlElement().getDomNode() );
        assertSame( childXmlElement, childXmlResource.adapt( Element.class ) );
        assertNotSame( childXmlElement, xmlElement );
    }
   
    @Test
   
    public void testXmlResourceToXmlElement() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        final XmlResourceStore xmlResourceStore = new XmlResourceStore();
        final RootXmlResource xmlResource = new RootXmlResource( xmlResourceStore );
        final XmlConversionTestElement elementOnXml = XmlConversionTestElement.TYPE.instantiate( xmlResource );
       
        xmlResource.save();

        final XmlElement xmlElement = service.convert( xmlResource, XmlElement.class );
       
        assertNotNull( xmlElement );
        assertSame( xmlElement, xmlResource.getXmlElement() );
        assertSame( xmlElement, xmlResource.adapt( XmlElement.class ) );
       
        final XmlConversionTestElement.ListEntry childElement = elementOnXml.getList().insert();
        final XmlElement childXmlElement = service.convert( childElement.resource(), XmlElement.class );
        final XmlResource childXmlResource = (XmlResource) childElement.resource();
       
        assertNotNull( childXmlElement );
        assertSame( childXmlElement, childXmlResource.getXmlElement() );
        assertSame( childXmlElement, childXmlResource.adapt( XmlElement.class ) );
        assertNotSame( childXmlElement, xmlElement );
    }
   
    @Test

    public void testStringToJavaIdentifier() throws Exception
    {
        final MasterConversionService service = Sapphire.service( MasterConversionService.class );
       
        assertEquals( new JavaIdentifier( "_" ), service.convert( "_", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "$" ), service.convert( "$", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "a" ), service.convert( "a", JavaIdentifier.class ) );

        assertEquals( new JavaIdentifier( "_abc" ), service.convert( "_abc", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "$abc" ), service.convert( "$abc", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "aabc" ), service.convert( "aabc", JavaIdentifier.class ) );

        assertEquals( new JavaIdentifier( "AbC_" ), service.convert( "AbC_", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "AbC$" ), service.convert( "AbC$", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "AbCa" ), service.convert( "AbCa", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "AbC1" ), service.convert( "AbC1", JavaIdentifier.class ) );
       
        assertEquals( new JavaIdentifier( "abc123" ), service.convert( "abc123", JavaIdentifier.class ) );
        assertEquals( new JavaIdentifier( "abc$_123" ), service.convert( "abc$_123", JavaIdentifier.class ) );

        assertNull( service.convert( "1", JavaIdentifier.class ) );
        assertNull( service.convert( "1abc", JavaIdentifier.class ) );
        assertNull( service.convert( "ab#c", JavaIdentifier.class ) );
        assertNull( service.convert( "ab.c", JavaIdentifier.class ) );
    }
   
}
TOP

Related Classes of org.eclipse.sapphire.tests.conversion.ConversionTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.