litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.ui_1_5.def; import junit.framework.*; import org.litesoft.ui.def.nonpublic.support.*; public class DottedReferenceTest extends TestCase { public static TestSuite suite() { return new TestSuite( DottedReferenceTest.class ); } public DottedReferenceTest( String name ) { super( name ); } public static void main( String[] args ) { junit.textui.TestRunner.run( suite() ); } public void test_parse() throws Exception { DottedReference.Selector selector; checkParts( "simple", "simple", null, null ); checkParts( "simple.rest", "simple", null, "rest" ); checkParts( " simple . rest ", "simple.rest", "simple", null, "rest" ); badParts( "" ); badParts( "simple." ); badParts( ".rest" ); checkParts( "simple[-1]", "simple", "-1", null ); checkParts( "simple[0]", "simple", "0", null ); checkParts( "simple[1000]", "simple", "1000", null ); checkParts( "simple[-1].rest", "simple", "-1", "rest" ); checkParts( "simple[0].rest", "simple", "0", "rest" ); checkParts( "simple[1000].rest", "simple", "1000", "rest" ); checkParts( "simple.rest[1000]", "simple", null, "rest[1000]" ); checkParts( "simple.rest[bad]", "simple", null, "rest[bad]" ); checkParts( "simple[1].rest[bad]", "simple", "1", "rest[bad]" ); badParts( "simple[-1]." ); checkParts( "simple[Yo=xyzzy]", "simple", "Yo=xyzzy", null ); checkParts( "simple[Yo=xyzzy].rest", "simple", "Yo=xyzzy", "rest" ); checkParts( "simple[Yo=xyzzy[2]]", "simple", "Yo=xyzzy[2]", null ); checkParts( "simple[ Yo = xyzzy [ 2 ] . abc ] . rest", // "simple[Yo=xyzzy[2].abc].rest", "simple", "Yo=xyzzy[2].abc", "rest" ); selector = checkParts( "items[Yes=inventory[123.456-123=partNo].inStock].price", "items", // "Yes=inventory[123.456-123=partNo].inStock", "price" ); DottedReference.SelectorByValue byValue = (DottedReference.SelectorByValue) selector; assertEquals( "Yes", byValue.getValue() ); selector = checkParts( byValue.getParts(), "inventory[123.456-123=partNo].inStock", "inventory", // "123.456-123=partNo", "inStock" ); byValue = (DottedReference.SelectorByValue) selector; assertEquals( "123.456-123", byValue.getValue() ); checkParts( byValue.getParts(), "partNo", "partNo", null, null ); } private void badParts( String pPartsAsString ) { try { DottedReference.parse( pPartsAsString ); } catch ( IllegalArgumentException expected ) { return; } fail( "parsed? '" + pPartsAsString + "'" ); } private DottedReference.Selector checkParts( String pPartsAsString, String pLocalReference, String pSelectorToString, String pRest ) { return checkParts( pPartsAsString, pPartsAsString, pLocalReference, pSelectorToString, pRest ); } private DottedReference.Selector checkParts( String pPartsAsString, String pExpectedPartsAsString, String pLocalReference, String pSelectorToString, String pRest ) { return checkParts( DottedReference.parse( pPartsAsString ), pExpectedPartsAsString, pLocalReference, pSelectorToString, pRest ); } private DottedReference.Selector checkParts( DottedReference.Parts pActual, String pExpectedPartsAsString, String pLocalReference, String pSelectorToString, String pRest ) { assertEquals( pExpectedPartsAsString, pActual.toString() ); assertEquals( pLocalReference, pActual.getLocalReference() ); assertEquals( pRest, pActual.getRestOfReference() ); DottedReference.Selector selector = pActual.getSelector(); assertEquals( pSelectorToString, (selector != null) ? selector.toString() : null ); return selector; } } |