// -*- mode: java; c-basic-offset: 2; -*- // Copyright 2009-2011 Google, All Rights reserved // Copyright 2011-2012 MIT, All rights reserved // Released under the Apache License, Version 2.0 // http://www.apache.org/licenses/LICENSE-2.0 package com.google.appinventor.components.runtime; import junit.framework.TestCase; /** * Tests LegoMindstormsNxtBase.java. * * @author lizlooney@google.com (Liz Looney) */ public class LegoMindstormsNxtBaseTest extends TestCase { private LegoMindstormsNxtBase legoMindstormsNxtBase; private byte[] buffer = new byte[4]; @Override protected void setUp() throws Exception { legoMindstormsNxtBase = new LegoMindstormsNxtBase(); } public void testBoolean() throws Exception { copyAndGetBoolean(true); assertEquals(1, buffer[0]); copyAndGetBoolean(false); assertEquals(0, buffer[0]); } private void copyAndGetBoolean(boolean value) { legoMindstormsNxtBase.copyBooleanValueToBytes(value, buffer, 0); assertEquals(value, legoMindstormsNxtBase.getBooleanValueFromBytes(buffer, 0)); } public void testSBYTE() throws Exception { copyAndGetSBYTE(0); copyAndGetSBYTE(1); copyAndGetSBYTE(-1); copyAndGetSBYTE(100); copyAndGetSBYTE(-100); copyAndGetSBYTE(Byte.MAX_VALUE); copyAndGetSBYTE(Byte.MIN_VALUE); } private void copyAndGetSBYTE(int value) { legoMindstormsNxtBase.copySBYTEValueToBytes(value, buffer, 0); assertEquals(value, legoMindstormsNxtBase.getSBYTEValueFromBytes(buffer, 0)); } public void testUBYTE() throws Exception { copyAndGetUBYTE(0x00); copyAndGetUBYTE(0x01); copyAndGetUBYTE(0x88); copyAndGetUBYTE(0xFF); } private void copyAndGetUBYTE(int value) { legoMindstormsNxtBase.copyUBYTEValueToBytes(value, buffer, 0); assertEquals(value, legoMindstormsNxtBase.getUBYTEValueFromBytes(buffer, 0)); } public void testSWORD() throws Exception { copyAndGetSWORD(0); copyAndGetSWORD(1); copyAndGetSWORD(-1); copyAndGetSWORD(100); copyAndGetSWORD(-100); copyAndGetSWORD(Short.MAX_VALUE); copyAndGetSWORD(Short.MIN_VALUE); } private void copyAndGetSWORD(int value) { legoMindstormsNxtBase.copySWORDValueToBytes(value, buffer, 0); assertEquals(value, legoMindstormsNxtBase.getSWORDValueFromBytes(buffer, 0)); } public void testUWORD() throws Exception { copyAndGetUWORD(0x0000); copyAndGetUWORD(0x0001); copyAndGetUWORD(0x8888); copyAndGetUWORD(0xFFFF); } private void copyAndGetUWORD(int value) { legoMindstormsNxtBase.copyUWORDValueToBytes(value, buffer, 0); assertEquals(value, legoMindstormsNxtBase.getUWORDValueFromBytes(buffer, 0)); } public void testSLONG() throws Exception { copyAndGetSLONG(0); copyAndGetSLONG(1); copyAndGetSLONG(-1); copyAndGetSLONG(100); copyAndGetSLONG(-100); copyAndGetSLONG(Integer.MAX_VALUE); copyAndGetSLONG(Integer.MIN_VALUE); } private void copyAndGetSLONG(int value) { legoMindstormsNxtBase.copySLONGValueToBytes(value, buffer, 0); assertEquals(value, legoMindstormsNxtBase.getSLONGValueFromBytes(buffer, 0)); } public void testULONG() throws Exception { copyAndGetULONG(0x00000000L); copyAndGetULONG(0x00000001L); copyAndGetULONG(0x88888888L); copyAndGetULONG(0xFFFFFFFFL); } private void copyAndGetULONG(long value) { legoMindstormsNxtBase.copyULONGValueToBytes(value, buffer, 0); assertEquals(value, legoMindstormsNxtBase.getULONGValueFromBytes(buffer, 0)); } }