Index: modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/ShortMessageTest.java =================================================================== --- modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/ShortMessageTest.java (revision 425597) +++ modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/ShortMessageTest.java (working copy) @@ -70,8 +70,8 @@ assertEquals(64, message.getMessage()[1]); assertEquals(127, message.getMessage()[2]); - ShortMessage1 message1 = new ShortMessage1(new byte[] { -95, -5, 9, 56, - -18 }); + byte[] bt = new byte[] { -95, -5, 9, 56, -18 }; + ShortMessage1 message1 = new ShortMessage1(bt); assertEquals(1, message1.getChannel()); assertEquals(160, message1.getCommand()); assertEquals(251, message1.getData1()); @@ -84,6 +84,25 @@ assertEquals(9, message1.getMessage()[2]); assertEquals(56, message1.getMessage()[3]); assertEquals(-18, message1.getMessage()[4]); + bt[0] = 1; + bt[1] = 2; + bt[2] = 3; + bt[3] = 4; + bt[4] = 5; + /** + * values change + */ + assertEquals(1, message1.getChannel()); + assertEquals(0, message1.getCommand()); + assertEquals(2, message1.getData1()); + assertEquals(3, message1.getData2()); + assertEquals(5, message1.getLength()); + assertEquals(1, message1.getStatus()); + assertEquals(1, message1.getMessage()[0]); + assertEquals(2, message1.getMessage()[1]); + assertEquals(3, message1.getMessage()[2]); + assertEquals(4, message1.getMessage()[3]); + assertEquals(5, message1.getMessage()[4]); ShortMessage1 message2 = new ShortMessage1(new byte[] { 95, 14 }); assertEquals(15, message2.getChannel()); @@ -106,19 +125,29 @@ fail("NullPointerException expected"); } catch (NullPointerException e) {} - ShortMessage1 message4 = new ShortMessage1(new byte[] { 0 }); + ShortMessage1 message4 = new ShortMessage1(new byte[] {0}); assertEquals(0, message4.getChannel()); assertEquals(0, message4.getCommand()); assertEquals(0, message4.getData1()); assertEquals(0, message4.getData2()); assertEquals(1, message4.getLength()); assertEquals(0, message4.getStatus()); + assertEquals(1, message4.getMessage().length); + + ShortMessage1 message5 = new ShortMessage1(new byte[0]); + assertEquals(0, message5.getChannel()); + assertEquals(0, message5.getCommand()); + assertEquals(0, message5.getData1()); + assertEquals(0, message5.getData2()); + assertEquals(0, message5.getLength()); + assertEquals(0, message5.getStatus()); + assertEquals(0, message5.getMessage().length); } /** - * test method setMessage( int ) of class ShortMessage + * test method setMessage(int) of class ShortMessage */ - public void test_setMessage1() { + public void test_setMessage1() throws Exception { ShortMessage1 message = new ShortMessage1(); /** * value of variable status is more or equals 246 and @@ -128,15 +157,13 @@ message.setMessage(245); fail("InvalidMidiDataException expected"); } catch (InvalidMidiDataException e) {} - ; try { message.setMessage(256); fail("InvalidMidiDataException expected"); } catch (InvalidMidiDataException e) {} - try { - message.setMessage(250); - } catch (InvalidMidiDataException e) {} + + message.setMessage(250); /** * channel change from 0 up to 15, and * channel + command == status, so @@ -152,10 +179,10 @@ } /** - * test method setMessage( int, int, int ) of + * test method setMessage(int, int, int) of * class ShortMessage */ - public void test_setMessage2() { + public void test_setMessage2() throws Exception { ShortMessage1 message = new ShortMessage1(); /** * value of variable status is more or equals 246 and @@ -169,9 +196,8 @@ message.setMessage(256, 34, 56); fail("InvalidMidiDataException expected"); } catch (InvalidMidiDataException e) {} - try { - message.setMessage(250, 34, 56); - } catch (InvalidMidiDataException e) {} + + message.setMessage(250, 34, 56); /** * channel change from 0 up to 15, and * channel + command == status, so @@ -187,10 +213,10 @@ } /** - * test method setMessage( int, int, int ) of + * test method setMessage(int, int, int, int) of * class ShortMessage */ - public void test_setMessage3() { + public void test_setMessage3() throws Exception { ShortMessage1 message = new ShortMessage1(); /** * value of variable command is more or equals 128 and @@ -234,14 +260,13 @@ message.setMessage(225, 8, 34, 456); fail("InvalidMidiDataException expected"); } catch (InvalidMidiDataException e) {} + + /** + * it's all right + */ + message.setMessage(200, 8, 34, 456); - try { - message.setMessage(200, 8, 34, 456); - } catch (InvalidMidiDataException e) {} - - try { - message.setMessage(200, 9, 34, 56); - } catch (InvalidMidiDataException e) {} + message.setMessage(200, 9, 34, 56); /** * channel change from 0 up to 15 * command must to divisible by 16, and so it less or @@ -256,9 +281,7 @@ assertEquals(201, message.getStatus()); assertEquals(2, message.getMessage().length); - try { - message.setMessage(148, 9, 34, 56); - } catch (InvalidMidiDataException e) {} + message.setMessage(148, 9, 34, 56); assertEquals(9, message.getChannel()); assertEquals(144, message.getCommand()); assertEquals(34, message.getData1()); @@ -272,29 +295,29 @@ * test method getChannel() of class ShortMessage * */ - public void test_getChannel() { + public void test_getChannel() throws Exception { ShortMessage message = new ShortMessage(); assertEquals(0, message.getChannel()); - ShortMessage1 message1 = new ShortMessage1(new byte[] { 23, 16, 35 }); + byte[] bt = new byte[] {23, 16, 35}; + ShortMessage1 message1 = new ShortMessage1(bt); assertEquals(7, message1.getChannel()); - + bt[0] = 15; + /** + * value change + */ + assertEquals(15, message1.getChannel()); + ShortMessage1 message2 = new ShortMessage1(null); assertEquals(0, message2.getChannel()); - try { - message.setMessage(249); - } catch (InvalidMidiDataException e) {} + message.setMessage(249); assertEquals(9, message.getChannel()); - try { - message.setMessage(250, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(250, 14, 62); assertEquals(10, message.getChannel()); - try { - message.setMessage(234, 15, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(234, 15, 14, 62); assertEquals(15, message.getChannel()); } @@ -303,29 +326,29 @@ * test method getCommand() of class ShortMessage * */ - public void test_getCommand() { + public void test_getCommand() throws Exception { ShortMessage message = new ShortMessage(); assertEquals(144, message.getCommand()); - ShortMessage1 message1 = new ShortMessage1(new byte[] { 23, 16, 35 }); + byte[] bt = new byte[] {23, 16, 35}; + ShortMessage1 message1 = new ShortMessage1(bt); assertEquals(16, message1.getCommand()); + bt[0] = 4; + /** + * value change + */ + assertEquals(0, message1.getCommand()); ShortMessage1 message2 = new ShortMessage1(null); assertEquals(0, message2.getCommand()); - try { - message.setMessage(249); - } catch (InvalidMidiDataException e) {} + message.setMessage(249); assertEquals(240, message.getCommand()); - try { - message.setMessage(250, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(250, 14, 62); assertEquals(240, message.getCommand()); - try { - message.setMessage(234, 15, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(234, 15, 14, 62); assertEquals(224, message.getCommand()); } @@ -333,34 +356,26 @@ * test method getLength() of class ShortMessage * */ - public void test_getLength() { + public void test_getLength() throws Exception { ShortMessage message = new ShortMessage(); assertEquals(3, message.getLength()); - ShortMessage1 message1 = new ShortMessage1(new byte[] { 23, 16, 35 }); + ShortMessage1 message1 = new ShortMessage1(new byte[] {23, 16, 35}); assertEquals(3, message1.getLength()); ShortMessage1 message2 = new ShortMessage1(null); assertEquals(0, message2.getLength()); - try { - message.setMessage(249); - } catch (InvalidMidiDataException e) {} + message.setMessage(249); assertEquals(1, message.getLength()); - try { - message.setMessage(250, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(250, 14, 62); assertEquals(1, message.getLength()); - try { - message.setMessage(234, 15, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(234, 15, 14, 62); assertEquals(3, message.getLength()); - try { - message.setMessage(214, 15, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(214, 15, 14, 62); assertEquals(2, message.getLength()); } @@ -368,29 +383,29 @@ * test method getStatus() of class ShortMessage * */ - public void test_getStatus() { + public void test_getStatus() throws Exception { ShortMessage message = new ShortMessage(); assertEquals(144, message.getStatus()); - ShortMessage1 message1 = new ShortMessage1(new byte[] { 23, 16, 35 }); + byte[] bt = new byte[] {23, 16, 35}; + ShortMessage1 message1 = new ShortMessage1(bt); assertEquals(23, message1.getStatus()); + bt[0] = 84; + /** + * value change + */ + assertEquals(84, message1.getStatus()); ShortMessage1 message2 = new ShortMessage1(null); assertEquals(0, message2.getStatus()); - try { - message.setMessage(249); - } catch (InvalidMidiDataException e) {} + message.setMessage(249); assertEquals(249, message.getStatus()); - try { - message.setMessage(250, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(250, 14, 62); assertEquals(250, message.getStatus()); - try { - message.setMessage(234, 15, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(234, 15, 14, 62); assertEquals(239, message.getStatus()); } @@ -399,14 +414,22 @@ * class ShortMessage * */ - public void test_getData1_2() { + public void test_getData1_2() throws Exception { ShortMessage message = new ShortMessage(); assertEquals(64, message.getData1()); assertEquals(127, message.getData2()); - ShortMessage1 message1 = new ShortMessage1(new byte[] { 23, 16, 35 }); + byte[] bt = new byte[] { 23, 16, 35 }; + ShortMessage1 message1 = new ShortMessage1(bt); assertEquals(16, message1.getData1()); assertEquals(35, message1.getData2()); + bt[1] = 84; + bt[2] = -16; + /** + * values change + */ + assertEquals(84, message1.getData1()); + assertEquals(240, message1.getData2()); ShortMessage1 message11 = new ShortMessage1(new byte[] { 23, 16 }); assertEquals(16, message11.getData1()); @@ -420,36 +443,32 @@ assertEquals(0, message2.getData1()); assertEquals(0, message2.getData2()); - try { - message.setMessage(249); - } catch (InvalidMidiDataException e) {} + message.setMessage(249); assertEquals(0, message.getData1()); assertEquals(0, message.getData2()); - try { - message.setMessage(250, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(250, 14, 62); assertEquals(0, message.getData1()); assertEquals(0, message.getData2()); - try { - message.setMessage(234, 15, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(234, 15, 14, 62); assertEquals(14, message.getData1()); assertEquals(62, message.getData2()); - try { - message.setMessage(198, 15, 14, 62); - } catch (InvalidMidiDataException e) {} + message.setMessage(198, 15, 14, 62); assertEquals(14, message.getData1()); assertEquals(0, message.getData2()); + + ShortMessage1 message15 = new ShortMessage1(new byte[] {-16, 16, 35}); + assertEquals(16, message15.getData1()); + assertEquals(35, message15.getData2()); } /** * test method getDataLength() of class ShortMessage * */ - public void test_getDataLentgth() { + public void test_getDataLentgth() throws Exception { ShortMessage1 message = new ShortMessage1(); /* @@ -512,40 +531,21 @@ fail("InvalidMidiDataException expected"); } catch (InvalidMidiDataException e) {} - try { - assertEquals(2, message.getDataLength1(128)); - } catch (InvalidMidiDataException e) {} - - try { - assertEquals(1, message.getDataLength1(200)); - } catch (InvalidMidiDataException e) {} - - try { - assertEquals(2, message.getDataLength1(230)); - } catch (InvalidMidiDataException e) {} - - try { - assertEquals(1, message.getDataLength1(241)); - } catch (InvalidMidiDataException e) {} - - try { - assertEquals(2, message.getDataLength1(242)); - } catch (InvalidMidiDataException e) {} - - try { - assertEquals(1, message.getDataLength1(243)); - } catch (InvalidMidiDataException e) {} - - try { - assertEquals(0, message.getDataLength1(250)); - } catch (InvalidMidiDataException e) {} - - try { - assertEquals(2, message.getDataLength1(647)); - } catch (InvalidMidiDataException e) {} + assertEquals(2, message.getDataLength1(128)); + assertEquals(1, message.getDataLength1(200)); + assertEquals(2, message.getDataLength1(230)); + assertEquals(1, message.getDataLength1(241)); + assertEquals(2, message.getDataLength1(242)); + assertEquals(1, message.getDataLength1(243)); + assertEquals(0, message.getDataLength1(250)); + assertEquals(2, message.getDataLength1(647)); } - public void test_clone() { + /** + * tests method clone() of class ShortMessage + * + */ + public void test_clone1() { ShortMessage message = new ShortMessage(); assertTrue(message.clone() != message); assertEquals(message.clone().getClass(), message.getClass()); @@ -564,6 +564,78 @@ } } } + + public void test_clone2() { + byte[] bt = new byte[] {1, 2, 3, 4, 5}; + ShortMessage1 message = new ShortMessage1(bt); + assertTrue(message.clone() != message); + + ShortMessage tmessage; + tmessage = (ShortMessage) message.clone(); + assertEquals(message.getLength(), tmessage.getLength()); + assertEquals(message.getMessage().length, tmessage.getMessage().length); + assertEquals(message.getData1(), tmessage.getData1()); + assertEquals(message.getData2(), tmessage.getData2()); + assertEquals(message.getChannel(), tmessage.getChannel()); + assertEquals(message.getCommand(), tmessage.getCommand()); + assertEquals(message.getStatus(), tmessage.getStatus()); + if (message.getMessage().length != 0) { + for (int i = 0; i < message.getMessage().length; i++) { + assertEquals(message.getMessage()[i], tmessage.getMessage()[i]); + } + } + bt[0] = 10; + bt[1] = 20; + bt[2] = 30; + bt[3] = 40; + bt[4] = 50; + /** + * 'real' ShortMessage change, but 'clone' not + */ + //'real' + assertEquals(10, message.getChannel()); + assertEquals(0, message.getCommand()); + assertEquals(20, message.getData1()); + assertEquals(30, message.getData2()); + assertEquals(10, message.getStatus()); + assertEquals(10, message.getMessage()[0]); + assertEquals(20, message.getMessage()[1]); + assertEquals(30, message.getMessage()[2]); + assertEquals(40, message.getMessage()[3]); + assertEquals(50, message.getMessage()[4]); + //'clone' + assertEquals(1, tmessage.getChannel()); + assertEquals(0, tmessage.getCommand()); + assertEquals(2, tmessage.getData1()); + assertEquals(3, tmessage.getData2()); + assertEquals(1, tmessage.getStatus()); + assertEquals(1, tmessage.getMessage()[0]); + assertEquals(2, tmessage.getMessage()[1]); + assertEquals(3, tmessage.getMessage()[2]); + assertEquals(4, tmessage.getMessage()[3]); + assertEquals(5, tmessage.getMessage()[4]); + } + + public void test_clone3() throws Exception { + ShortMessage message = new ShortMessage(); + message.setMessage(150, 14, 45, 60); + assertTrue(message.clone() != message); + assertEquals(message.clone().getClass(), message.getClass()); + ShortMessage tmessage; + tmessage = (ShortMessage) message.clone(); + assertEquals(message.getLength(), tmessage.getLength()); + assertEquals(message.getMessage().length, tmessage.getMessage().length); + assertEquals(message.getData1(), tmessage.getData1()); + assertEquals(message.getData2(), tmessage.getData2()); + assertEquals(message.getChannel(), tmessage.getChannel()); + assertEquals(message.getCommand(), tmessage.getCommand()); + assertEquals(message.getStatus(), tmessage.getStatus()); + if (message.getMessage().length != 0) { + for (int i = 0; i < message.getMessage().length; i++) { + assertEquals(message.getMessage()[i], tmessage.getMessage()[i]); + } + } + } /** * Subsidiary class in order to use constructor Index: modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/MidiMessageTest.java =================================================================== --- modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/MidiMessageTest.java (revision 425597) +++ modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/MidiMessageTest.java (working copy) @@ -21,213 +21,253 @@ import javax.sound.midi.InvalidMidiDataException; import javax.sound.midi.MidiMessage; - -public class MidiMessageTest extends TestCase -{ +public class MidiMessageTest extends TestCase { /** * test constructor of class MidiMessage * */ - public void test_constructor_MidiMessage() - { - MidiMessage1 midi = new MidiMessage1( new byte[] { 1, 2, 3, -5 } ); - assertTrue( midi.getLength() == 4 ); - assertTrue( midi.getStatus() == 1 ); - assertTrue( midi.getMessage().length == 4 ); - assertTrue( midi.getMessage()[0] == 1 ); - assertTrue( midi.getMessage()[1] == 2 ); - assertTrue( midi.getMessage()[2] == 3 ); - assertTrue( midi.getMessage()[3] == -5 ); + public void test_constructor_MidiMessage() { + MidiMessage1 midi = new MidiMessage1(new byte[] { 1, 2, 3, -5 }); + assertTrue(midi.getLength() == 4); + assertTrue(midi.getStatus() == 1); + assertTrue(midi.getMessage().length == 4); + assertTrue(midi.getMessage()[0] == 1); + assertTrue(midi.getMessage()[1] == 2); + assertTrue(midi.getMessage()[2] == 3); + assertTrue(midi.getMessage()[3] == -5); + + MidiMessage1 midi1 = new MidiMessage1(new byte[] { 0, -2 }); + assertTrue(midi1.getLength() == 2); + assertTrue(midi1.getStatus() == 0); + assertTrue(midi1.getMessage().length == 2); + assertTrue(midi1.getMessage()[0] == 0); + assertTrue(midi1.getMessage()[1] == -2); + + byte[] bt = new byte[] { -1, 87, 19 }; + MidiMessage1 midi2 = new MidiMessage1(bt); + assertTrue(midi2.getLength() == 3); + assertTrue(midi2.getStatus() == 255); + assertTrue(midi2.getMessage().length == 3); + assertTrue(midi2.getMessage()[0] == -1); + assertTrue(midi2.getMessage()[1] == 87); + assertTrue(midi2.getMessage()[2] == 19); + bt[0] = 45; + bt[1] = 16; + bt[2] = -29; + /** + * values change + */ + assertEquals(3, midi2.getLength()); + assertEquals(45, midi2.getStatus()); + assertEquals(3, midi2.getMessage().length); + assertEquals(45, midi2.getMessage()[0]); + assertEquals(16, midi2.getMessage()[1]); + assertEquals(-29, midi2.getMessage()[2]); - MidiMessage1 midi1 = new MidiMessage1( new byte[] { 0, -2 } ); - assertTrue( midi1.getLength() == 2 ); - assertTrue( midi1.getStatus() == 0 ); - assertTrue( midi1.getMessage().length == 2 ); - assertTrue( midi1.getMessage()[0] == 0 ); - assertTrue( midi1.getMessage()[1] == -2 ); - - MidiMessage1 midi2 = new MidiMessage1( new byte[] { -1, 87, 19 } ); - assertTrue( midi2.getLength() == 3 ); - assertTrue( midi2.getStatus() == 255 ); - assertTrue( midi2.getMessage().length == 3 ); - assertTrue( midi2.getMessage()[0] == -1 ); - assertTrue( midi2.getMessage()[1] == 87 ); - assertTrue( midi2.getMessage()[2] == 19 ); - - MidiMessage1 midi3 = new MidiMessage1( null ); - assertTrue( midi3.getLength() == 0 ); - assertTrue( midi3.getStatus() == 0 ); + + MidiMessage1 midi3 = new MidiMessage1(null); + assertTrue(midi3.getLength() == 0); + assertTrue(midi3.getStatus() == 0); try { midi3.getMessage(); - fail( "NullPointerExcepiton expect" ); - } catch( NullPointerException e ) { } + fail("NullPointerExcepiton expected"); + } catch (NullPointerException e) {} + MidiMessage1 midi4 = new MidiMessage1(new byte[0]); + assertEquals(0, midi4.getLength()); + assertEquals(0, midi4.getStatus()); + assertEquals(0, midi4.getMessage().length); + } - + /** * test method getMessage() of class MidiMessage * */ - public void test_getMessage() - { - MidiMessage1 midi = new MidiMessage1( new byte[] { 1, 2, 3 } ); - assertTrue( midi.getMessage()[0] == 1 ); - assertTrue( midi.getMessage()[1] == 2 ); - assertTrue( midi.getMessage()[2] == 3 ); - - MidiMessage1 midi1 = new MidiMessage1( new byte[] { 1 } ); - assertTrue( midi1.getMessage()[0] == 1 ); + public void test_getMessage() throws Exception { + byte[] bt = new byte[] {1, 2, 3}; + MidiMessage1 midi = new MidiMessage1(bt); + assertTrue(midi.getMessage()[0] == 1); + assertTrue(midi.getMessage()[1] == 2); + assertTrue(midi.getMessage()[2] == 3); + bt[0] = 76; + bt[1] = 13; + bt[2] = -5; + /** + * values change + */ + assertEquals(76, midi.getMessage()[0]); + assertEquals(13, midi.getMessage()[1]); + assertEquals(-5, midi.getMessage()[2]); + + MidiMessage1 midi1 = new MidiMessage1(new byte[] {1}); + assertTrue(midi1.getMessage()[0] == 1); try { int i = midi1.getMessage()[1]; - fail( "IndexOutOfBoundsException expected" ); - } catch( IndexOutOfBoundsException e ) { }; - - MidiMessage1 midi2 = new MidiMessage1( null ); + fail("ArrayIndexOutOfBoundsException expected"); + } catch (ArrayIndexOutOfBoundsException e) {} + + MidiMessage1 midi2 = new MidiMessage1(null); try { int i = midi2.getMessage()[0]; - fail( "NullPointerException expected" ); - } catch( NullPointerException e ) { } - + fail("NullPointerException expected"); + } catch (NullPointerException e) {} + + midi2.setMessage(new byte[] { 90, 84 }, 2); + assertTrue(midi2.getMessage().length == 2); + assertTrue(midi2.getMessage()[0] == 90); + assertTrue(midi2.getMessage()[1] == 84); + byte[] nb = midi2.getMessage(); + nb[0] = 1; + nb[1] = 2; + /** + * values don't change + */ + assertEquals(90, midi2.getMessage()[0]); + assertEquals(84, midi2.getMessage()[1]); + + midi1.setMessage(new byte[] { -54, 84, -9 }, 1); + assertTrue(midi1.getMessage().length == 1); + assertTrue(midi1.getMessage()[0] == -54); + + midi.setMessage(new byte[] { -90, -7, 4 }, 0); + assertTrue(midi.getMessage().length == 0); try { - midi2.setMessage( new byte[] { 90, 84 } , 2 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi2.getMessage().length == 2 ); - assertTrue( midi2.getMessage()[0] == 90 ); - assertTrue( midi2.getMessage()[1] == 84 ); - - try { - midi1.setMessage( new byte[] { -54, 84, -9 } , 1 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi1.getMessage().length == 1 ); - assertTrue( midi1.getMessage()[0] == -54 ); - - try { - midi.setMessage( new byte[] { -90, -7, 4 } , 0 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi.getMessage().length == 0 ); - try { int i = midi.getMessage()[0]; - fail( "ArrayIndexOutOfBoundsException expected" ); - } catch( ArrayIndexOutOfBoundsException e ) { }; - + fail("ArrayIndexOutOfBoundsException expected"); + } catch (ArrayIndexOutOfBoundsException e) {} } - + /** * test method getStatus() of class MidiMessage * */ - public void test_getStatus() - { - MidiMessage1 midi = new MidiMessage1( new byte[] { 1, 2, 3 } ); - assertTrue( midi.getStatus() == 1 ); - - MidiMessage1 midi1 = new MidiMessage1( new byte[] { -91, 2, 3 } ); - assertTrue( midi1.getStatus() == 165 ); - - MidiMessage1 midi2 = new MidiMessage1( new byte[] { 1 } ); - assertTrue( midi2.getStatus() == 1 ); - - MidiMessage1 midi3 = new MidiMessage1( null ); - assertTrue( midi3.getStatus() == 0 ); - - try { - midi2.setMessage( new byte[] { 90, 84 } , 2 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi2.getStatus() == 90 ); - - try { - midi1.setMessage( new byte[] { -54, 84, -9 } , 1 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi1.getStatus() == 202 ); - - try { - midi.setMessage( new byte[] { -90, -7, 4 } , 0 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi.getStatus() == 0 ); + public void test_getStatus() throws Exception { + byte[] bt = new byte[] {1, 2, 3}; + MidiMessage1 midi = new MidiMessage1(bt); + assertTrue(midi.getStatus() == 1); + bt[0] = -1; + /** + * value change + */ + assertEquals(255, midi.getStatus()); + + MidiMessage1 midi1 = new MidiMessage1(new byte[] { -91, 2, 3 }); + assertTrue(midi1.getStatus() == 165); + + MidiMessage1 midi2 = new MidiMessage1(new byte[] { 1 }); + assertTrue(midi2.getStatus() == 1); + + MidiMessage1 midi3 = new MidiMessage1(null); + assertTrue(midi3.getStatus() == 0); + + bt = new byte[] {90, 84}; + midi2.setMessage(bt, 2); + assertEquals(90, midi2.getStatus()); + bt[0] = 35; + /** + * value don't change + */ + assertEquals(90, midi2.getStatus()); + + midi1.setMessage(new byte[] {-54, 84, -9}, 1); + assertTrue(midi1.getStatus() == 202); + + midi.setMessage(new byte[] { -90, -7, 4 }, 0); + assertTrue(midi.getStatus() == 0); } - + /** * test method getLength() of class MidiMessage * */ - public void test_getLength() - { - MidiMessage1 midi = new MidiMessage1( new byte[] { 1, 2, 3 } ); - assertTrue( midi.getLength() == 3 ); - - MidiMessage1 midi1 = new MidiMessage1( null ); - assertTrue( midi1.getLength() == 0 ); - - MidiMessage1 midi2 = new MidiMessage1( new byte[] { -71, 2, 3, -90 } ); - assertTrue( midi2.getLength() == 4 ); - - try { - midi2.setMessage( new byte[] { 90, 84 } , 2 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi2.getLength() == 2 ); - - try { - midi1.setMessage( new byte[] { 90, 84, -9 } , 2 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi1.getLength() == 2 ); - - try { - midi.setMessage( new byte[] { -90, -7, 4 } , 0 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi.getLength() == 0 ); + public void test_getLength() throws Exception { + MidiMessage1 midi = new MidiMessage1(new byte[] {1, 2, 3}); + assertTrue(midi.getLength() == 3); + + MidiMessage1 midi1 = new MidiMessage1(null); + assertTrue(midi1.getLength() == 0); + + MidiMessage1 midi2 = new MidiMessage1(new byte[] {-71, 2, 3, -90}); + assertTrue(midi2.getLength() == 4); + + midi2.setMessage(new byte[] {90, 84}, 2); + assertTrue(midi2.getLength() == 2); + + midi1.setMessage(new byte[] { 90, 84, -9 }, 2); + assertTrue(midi1.getLength() == 2); + + midi.setMessage(new byte[] { -90, -7, 4 }, 0); + assertTrue(midi.getLength() == 0); } - + /** * test method setMessage( byte[], int ) of class MidiMessage * */ - public void test_setMessage() - { - MidiMessage1 midi = new MidiMessage1( new byte[] { 18, 34, 48, -56, 12 } ); - MidiMessage1 midi1 = new MidiMessage1( new byte[] { 18 } ); - MidiMessage1 midi2 = new MidiMessage1( null ); + public void test_setMessage() throws Exception { + MidiMessage1 midi = new MidiMessage1(new byte[] {18, 34, 48, -56, 12}); + MidiMessage1 midi1 = new MidiMessage1(new byte[] {18}); + MidiMessage1 midi2 = new MidiMessage1(null); + + byte[] bt = new byte[] {90, 84}; + midi2.setMessage(bt, 2); + assertEquals(2, midi2.getMessage().length); + assertEquals(90, midi2.getMessage()[0]); + assertEquals(84, midi2.getMessage()[1]); + bt[0] = 34; + bt[1] = -5; + /** + * values don't change + */ + assertEquals(90, midi2.getMessage()[0]); + assertEquals(84, midi2.getMessage()[1]); + + midi1.setMessage(new byte[] { -54, 84, -9 }, 1); + assertTrue(midi1.getMessage().length == 1); + assertTrue(midi1.getMessage()[0] == -54); + + midi.setMessage(new byte[] { -90, -7, 4 }, 0); + assertTrue(midi.getMessage().length == 0); try { - midi2.setMessage( new byte[] { 90, 84 } , 2 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi2.getMessage().length == 2 ); - assertTrue( midi2.getMessage()[0] == 90 ); - assertTrue( midi2.getMessage()[1] == 84 ); + int i = midi.getMessage()[0]; + fail("ArrayIndexOutOfBoundsException expected"); + } catch (ArrayIndexOutOfBoundsException e) {} try { - midi1.setMessage( new byte[] { -54, 84, -9 } , 1 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi1.getMessage().length == 1 ); - assertTrue( midi1.getMessage()[0] == -54 ); + midi1.setMessage(new byte[] { -54, 84, -9 }, 5); + fail("IndexOutOfBoundsException expected"); + } catch (IndexOutOfBoundsException e) {} try { - midi.setMessage( new byte[] { -90, -7, 4 } , 0 ); - } catch( InvalidMidiDataException e ) { }; - assertTrue( midi.getMessage().length == 0 ); + midi1.setMessage(null, -2); + fail("IndexOutOfBoundsException expected"); + } catch (IndexOutOfBoundsException e) {} + try { - int i = midi.getMessage()[0]; - fail( "ArrayIndexOutOfBoundsException expected" ); - } catch( ArrayIndexOutOfBoundsException e ) { }; + midi1.setMessage(null, 0); + fail("NullPointerException expected"); + } catch (NullPointerException e) {} + } + /** * Subsidiary class in order to testing constructor * and method setMessage( byte[], int ) of class Instrument, * because its declared as protected */ - static class MidiMessage1 extends MidiMessage - { - MidiMessage1( byte[] data ) - { - super( data ); + static class MidiMessage1 extends MidiMessage { + MidiMessage1(byte[] data) { + super(data); } - public Object clone() - { + + public Object clone() { return null; } - - public void setMessage( byte[] data, int length ) - throws InvalidMidiDataException - { - super.setMessage( data, length ); + + public void setMessage(byte[] data, int length) + throws InvalidMidiDataException { + super.setMessage(data, length); } } } Index: modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/MetaMessageTest.java =================================================================== --- modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/MetaMessageTest.java (revision 425597) +++ modules/sound/src/test/java/org/apache/harmony/sound/tests/javax/sound/midi/MetaMessageTest.java (working copy) @@ -42,8 +42,7 @@ try { meta = new MetaMessage1(null); fail("NullPointerException expected"); - } catch (NullPointerException e) { - } + } catch (NullPointerException e) {} assertEquals(2, meta.getLength()); assertEquals(255, meta.getStatus()); @@ -53,7 +52,8 @@ assertEquals(0, meta.getMessage()[1]); assertEquals(0, meta.getData().length); - MetaMessage1 meta3 = new MetaMessage1(new byte[] { -87, 19, 4 }); + byte[] bt = new byte[] {-87, 19, 4}; + MetaMessage1 meta3 = new MetaMessage1(bt); assertEquals(3, meta3.getLength()); assertEquals(169, meta3.getStatus()); assertEquals(19, meta3.getType()); @@ -62,8 +62,22 @@ assertEquals(19, meta3.getMessage()[1]); assertEquals(4, meta3.getMessage()[2]); assertEquals(0, meta3.getData().length); + bt[0] = 10; + bt[1] = 20; + bt[2] = 30; + /** + * values change!!! + */ + assertEquals( meta3.getStatus(), 10 ); + assertEquals( meta3.getType(), 20 ); + assertEquals( meta3.getMessage().length, 3 ); + assertEquals( meta3.getMessage()[0], 10 ); + assertEquals( meta3.getMessage()[1], 20 ); + assertEquals( meta3.getMessage()[2], 30 ); + assertEquals( meta3.getData().length, 0 ); - MetaMessage1 meta1 = new MetaMessage1(new byte[] { 17, -9, 23, 45, 56 }); + bt = new byte[] {17, -9, 23, 45, 56}; + MetaMessage1 meta1 = new MetaMessage1(bt); assertEquals(5, meta1.getLength()); assertEquals(17, meta1.getStatus()); assertEquals(247, meta1.getType()); @@ -76,6 +90,50 @@ assertEquals(2, meta1.getData().length); assertEquals(45, meta1.getData()[0]); assertEquals(56, meta1.getData()[1]); + bt[0] = 98; + bt[2] = -56; + bt[3] = -16; + bt[4] = -3; + /** + * values change, but the begin of array that + * return by method getData() doesn't displace!!! + */ + assertEquals( meta1.getLength(), 5 ); + assertEquals( meta1.getStatus(), 98 ); + assertEquals( meta1.getType(), 247 ); + assertEquals( meta1.getMessage().length, 5 ); + assertEquals( meta1.getMessage()[0], 98 ); + assertEquals( meta1.getMessage()[1], -9 ); + assertEquals( meta1.getMessage()[2], -56 ); + assertEquals( meta1.getMessage()[3], -16 ); + assertEquals( meta1.getMessage()[4], -3 ); + assertEquals( 2, meta1.getData().length ); //!!! + assertEquals( meta1.getData()[0], -16 ); //!!! + assertEquals( meta1.getData()[1], -3 ); //!!! + byte[] nb = meta1.getData(); + nb[0] = 1; + nb[1] = 2; + /** + * and here values don't change... + */ + assertEquals( meta1.getData()[0], -16 ); + assertEquals( meta1.getData()[1], -3 ); + + bt = new byte[] {17, -9, -23, -45, -56}; + MetaMessage1 meta4 = new MetaMessage1(bt); + assertEquals(5, meta4.getLength()); + assertEquals(17, meta4.getStatus()); + assertEquals(247, meta4.getType()); + assertEquals(5, meta4.getMessage().length); + assertEquals(17, meta4.getMessage()[0]); + assertEquals(-9, meta4.getMessage()[1]); + assertEquals(-23, meta4.getMessage()[2]); + assertEquals(-45, meta4.getMessage()[3]); + assertEquals(-56, meta4.getMessage()[4]); + try { + assertEquals(0, meta4.getData().length); + fail("NegativeArraySizeException expected"); + } catch (NegativeArraySizeException e) {} meta.setMessage(10, new byte[100000], 16385); @@ -160,11 +218,12 @@ assertEquals(meta.getMessage()[3], -128); assertEquals(meta.getMessage()[4], 1); - meta.setMessage(10, new byte[] { 1, 2, 3, 4 }, 4); + byte[] bt = new byte[] { 1, 2, 3, 4 }; + meta.setMessage(10, bt, 4); assertEquals(meta.getLength(), 7); assertEquals(meta.getStatus(), 255); assertEquals(meta.getType(), 10); - assertEquals(meta.getData().length, 4); + assertEquals(4, meta.getData().length); assertEquals(meta.getData()[0], 1); assertEquals(meta.getData()[1], 2); assertEquals(meta.getData()[2], 3); @@ -177,6 +236,29 @@ assertEquals(meta.getMessage()[4], 2); assertEquals(meta.getMessage()[5], 3); assertEquals(meta.getMessage()[6], 4); + bt[0] = 0; + bt[1] = 1; + bt[2] = 2; + bt[3] = 3; + /** + * values don't change + */ + assertEquals( meta.getLength(), 7 ); + assertEquals( meta.getStatus(), 255 ); + assertEquals( meta.getType(), 10 ); + assertEquals( meta.getData().length, 4 ); + assertEquals( meta.getData()[0], 1 ); + assertEquals( meta.getData()[1], 2 ); + assertEquals( meta.getData()[2], 3 ); + assertEquals( meta.getData()[3], 4 ); + assertEquals( meta.getMessage().length, 7 ); + assertEquals( meta.getMessage()[0], -1 ); + assertEquals( meta.getMessage()[1], 10 ); + assertEquals( meta.getMessage()[2], 4 ); + assertEquals( meta.getMessage()[3], 1 ); + assertEquals( meta.getMessage()[4], 2 ); + assertEquals( meta.getMessage()[5], 3 ); + assertEquals( meta.getMessage()[6], 4 ); meta.setMessage(12, null, 0); @@ -190,19 +272,17 @@ assertEquals(meta.getMessage()[2], 0); /** - * I will testing this condition after throw out exception; + * I will testing following condition after throw out exception; * it must be the same after it */ try { meta.setMessage(10, new byte[] { 1, 2, 3, 4 }, 4); - } catch (InvalidMidiDataException e) { - } + } catch (InvalidMidiDataException e) {} try { meta.setMessage(12, new byte[0], 9); fail("InvalidMidiDataException expected"); - } catch (InvalidMidiDataException e) { - } + } catch (InvalidMidiDataException e) {} assertEquals(meta.getLength(), 7); assertEquals(meta.getStatus(), 255); assertEquals(meta.getType(), 10); @@ -223,8 +303,7 @@ try { meta.setMessage(12, null, 9); fail("NullPointerException expected"); - } catch (NullPointerException e) { - } + } catch (NullPointerException e) {} assertEquals(meta.getLength(), 7); assertEquals(meta.getStatus(), 255); assertEquals(meta.getType(), 10); @@ -245,8 +324,7 @@ try { meta.setMessage(12, null, -9); fail("InvalidMidiDataException expected"); - } catch (InvalidMidiDataException e) { - } + } catch (InvalidMidiDataException e) {} assertEquals(meta.getLength(), 7); assertEquals(meta.getStatus(), 255); assertEquals(meta.getType(), 10); @@ -275,26 +353,22 @@ try { meta.setMessage(10, new byte[] { 1, 2, 3 }, 4); fail("InvalidMidiDataException expected"); - } catch (InvalidMidiDataException e) { - } + } catch (InvalidMidiDataException e) {} try { meta.setMessage(10, new byte[] { 1, 2, 3 }, -5); fail("InvalidMidiDataException expected"); - } catch (InvalidMidiDataException e) { - } + } catch (InvalidMidiDataException e) {} try { meta.setMessage(-1, new byte[] { 1, 2, 3 }, 3); fail("InvalidMidiDataException expected"); - } catch (InvalidMidiDataException e) { - } + } catch (InvalidMidiDataException e) {} try { meta.setMessage(128, new byte[] { 1, 2, 3 }, 3); fail("InvalidMidiDataException expected"); - } catch (InvalidMidiDataException e) { - } + } catch (InvalidMidiDataException e) {} meta.setMessage(10, new byte[] { 1, 2, 3, 4 }, 4); @@ -350,9 +424,15 @@ MetaMessage meta = new MetaMessage(); assertEquals(meta.getType(), 0); - MetaMessage1 meta2 = new MetaMessage1(new byte[] { 9, -4, 34, 18 }); + byte[] bt = new byte[] { 9, -4, 34, 18 }; + MetaMessage1 meta2 = new MetaMessage1(bt); assertEquals(meta2.getType(), 252); - + bt[1] = 5; + /** + * value change + */ + assertEquals(5, meta2.getType()); + meta.setMessage(10, new byte[] { 1, 2, 3, 4 }, 4); assertEquals(meta.getType(), 10); @@ -368,20 +448,40 @@ MetaMessage meta = new MetaMessage(); assertEquals(0, meta.getData().length); - MetaMessage1 meta1 = new MetaMessage1(new byte[] { 18, 43, 27, -90, 4 }); + byte[] bt = new byte[] { 18, 43, 27, -90, 4 }; + MetaMessage1 meta1 = new MetaMessage1(bt); assertEquals(2, meta1.getData().length); assertEquals(-90, meta1.getData()[0]); assertEquals(4, meta1.getData()[1]); + bt[3] = 67; + bt[4] = -16; + /** + * values change + */ + assertEquals(67, meta1.getData()[0]); + assertEquals(-16, meta1.getData()[1]); MetaMessage1 meta2 = new MetaMessage1(new byte[] { 18, 43, 27 }); assertEquals(0, meta2.getData().length); - meta.setMessage(10, new byte[] { 1, 2, 3, 4 }, 4); + bt = new byte[] { 1, 2, 3, 4 }; + meta.setMessage(10, bt, 4); assertEquals(4, meta.getData().length); assertEquals(1, meta.getData()[0]); assertEquals(2, meta.getData()[1]); assertEquals(3, meta.getData()[2]); assertEquals(4, meta.getData()[3]); + bt[0] = 34; + bt[1] = -17; + bt[2] = 90; + bt[3] = -6; + /** + * values don't change + */ + assertEquals(1, meta.getData()[0]); + assertEquals(2, meta.getData()[1]); + assertEquals(3, meta.getData()[2]); + assertEquals(4, meta.getData()[3]); meta.setMessage(12, null, 0); assertNotNull(meta.getData()); @@ -464,6 +564,36 @@ } } } + + public void test_clone4() throws Exception { + byte[] bt = new byte[] {1, 2, 3, 4}; + MetaMessage1 meta = new MetaMessage1(bt); + assertTrue(meta.clone() != meta); + + MetaMessage tmeta; + tmeta = (MetaMessage) meta.clone(); + bt[0] = 34; + bt[1] = 15; + bt[2] = 89; + bt[3] = 1; + assertEquals(meta.getLength(), tmeta.getLength()); + assertEquals(meta.getMessage().length, tmeta.getMessage().length); + assertEquals(meta.getData().length, tmeta.getData().length); + /** + * 'real' MetaMessage change, but 'clone' not + */ + assertEquals(1, meta.getData()[0]); + assertEquals(34, meta.getMessage()[0]); + assertEquals(15, meta.getMessage()[1]); + assertEquals(89, meta.getMessage()[2]); + assertEquals(1, meta.getMessage()[3]); + + assertEquals(4, tmeta.getData()[0]); + assertEquals(1, tmeta.getMessage()[0]); + assertEquals(2, tmeta.getMessage()[1]); + assertEquals(3, tmeta.getMessage()[2]); + assertEquals(4, tmeta.getMessage()[3]); + } /** * Subsidiary class in order to testing constructor