From 38486f9e3e83a78930f68ab6b29b46d3e6393d2c Mon Sep 17 00:00:00 2001 From: atomicint Date: Sun, 7 Feb 2016 14:41:48 -0500 Subject: [PATCH] Add unit test for Attribute#encode Fix typo in Attribute unit test Ensure test method names are consistent with others in Apollo More clear tests --- .../model/entity/attr/AttributeTests.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 game/src/test/org/apollo/game/model/entity/attr/AttributeTests.java diff --git a/game/src/test/org/apollo/game/model/entity/attr/AttributeTests.java b/game/src/test/org/apollo/game/model/entity/attr/AttributeTests.java new file mode 100644 index 00000000..bbd656f8 --- /dev/null +++ b/game/src/test/org/apollo/game/model/entity/attr/AttributeTests.java @@ -0,0 +1,78 @@ +package org.apollo.game.model.entity.attr; + +import java.nio.charset.StandardCharsets; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.google.common.primitives.Longs; + +/** + * Tests for different {@link Attribute}s. + */ +public final class AttributeTests { + + /** + * Defines Attributes with their default values before any tests are run. + */ + @Before + public void setup() { + AttributeMap.define("string_test", AttributeDefinition.forString("Hello world", AttributePersistence.TRANSIENT)); + AttributeMap.define("boolean_test", AttributeDefinition.forBoolean(true, AttributePersistence.TRANSIENT)); + AttributeMap.define("int_test", AttributeDefinition.forInt(Integer.MAX_VALUE, AttributePersistence.TRANSIENT)); + AttributeMap.define("long_test", AttributeDefinition.forLong(Long.MAX_VALUE, AttributePersistence.TRANSIENT)); + AttributeMap.define("double_test", AttributeDefinition.forDouble(Double.MAX_VALUE, AttributePersistence.TRANSIENT)); + } + + /** + * Tests Attribute String encoding. + */ + @Test + public void stringEncode() { + AttributeMap map = new AttributeMap(); + byte[] expected = "Hello world\0".getBytes(StandardCharsets.UTF_8); + Assert.assertArrayEquals(expected, map.get("string_test").encode()); + } + + /** + * Tests Attribute boolean encoding. + */ + @Test + public void booleanEncode() { + AttributeMap map = new AttributeMap(); + byte[] expected = { 1 }; + Assert.assertArrayEquals(expected, map.get("boolean_test").encode()); + } + + /** + * Tests Attribute int encoding. + */ + @Test + public void intEncode() { + AttributeMap map = new AttributeMap(); + byte[] expected = Longs.toByteArray(Integer.MAX_VALUE); + Assert.assertArrayEquals(expected, map.get("int_test").encode()); + } + + /** + * Tests Attribute long encoding. + */ + @Test + public void longEncode() { + AttributeMap map = new AttributeMap(); + byte[] expected = Longs.toByteArray(Long.MAX_VALUE); + Assert.assertArrayEquals(expected, map.get("long_test").encode()); + } + + /** + * Tests Attribute double encoding. + */ + @Test + public void doubleEncode() { + AttributeMap map = new AttributeMap(); + byte[] expected = Longs.toByteArray(Double.doubleToLongBits(Double.MAX_VALUE)); + Assert.assertArrayEquals(expected, map.get("double_test").encode()); + } + +}