GeometryTest.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package com.jme3.scene;
  2. import com.jme3.bounding.BoundingVolume;
  3. import com.jme3.material.Material;
  4. import com.jme3.math.Quaternion;
  5. import com.jme3.math.Transform;
  6. import com.jme3.math.Vector3f;
  7. import org.junit.Test;
  8. import static org.easymock.EasyMock.*;
  9. import static org.junit.Assert.*;
  10. public class GeometryTest {
  11. @Test
  12. public void testConstructorNameNull() {
  13. Geometry geom = new Geometry(null);
  14. assertNull(geom.getName());
  15. }
  16. @Test
  17. public void testConstructorName() {
  18. Geometry geom = new Geometry("TestGeometry");
  19. assertEquals("TestGeometry", geom.getName());
  20. }
  21. @Test(expected = NullPointerException.class)
  22. public void testConstructorNameMeshNullMesh() {
  23. Geometry geom = new Geometry("TestGeometry", null);
  24. }
  25. @Test
  26. public void testConstructorNameMesh() {
  27. Mesh m = new Mesh();
  28. Geometry geom = new Geometry("TestGeometry", m);
  29. assertEquals("TestGeometry", geom.getName());
  30. assertEquals(m, geom.getMesh());
  31. }
  32. @Test(expected = IllegalStateException.class)
  33. public void testSetLodLevelMeshLodZero() {
  34. Mesh m = new Mesh();
  35. Geometry geom = new Geometry("TestGeometry", m);
  36. geom.setLodLevel(0);
  37. }
  38. @Test(expected = IllegalArgumentException.class)
  39. public void testSetLodLevelLodLessZero() {
  40. Mesh m = new Mesh();
  41. VertexBuffer lodLevels = new VertexBuffer(VertexBuffer.Type.Size);
  42. m.setLodLevels(new VertexBuffer[]{lodLevels});
  43. Geometry geom = new Geometry("TestGeometry", m);
  44. geom.setLodLevel(-1);
  45. }
  46. @Test(expected = IllegalArgumentException.class)
  47. public void testSetLodLevelLodGreaterMeshLod() {
  48. Mesh m = new Mesh();
  49. VertexBuffer lodLevel = new VertexBuffer(VertexBuffer.Type.Size);
  50. m.setLodLevels(new VertexBuffer[]{lodLevel});
  51. Geometry geom = new Geometry("TestGeometry", m);
  52. geom.setLodLevel(5);
  53. }
  54. @Test
  55. public void testSetLodLevel() {
  56. Mesh m = new Mesh();
  57. VertexBuffer lodLevel = new VertexBuffer(VertexBuffer.Type.Size);
  58. m.setLodLevels(new VertexBuffer[]{lodLevel, lodLevel, lodLevel});
  59. Geometry geom = new Geometry("TestGeometry", m);
  60. geom.setLodLevel(2);
  61. assertEquals(2, geom.getLodLevel());
  62. }
  63. @Test(expected = IllegalArgumentException.class)
  64. public void testSetMeshNull() {
  65. Geometry geom = new Geometry();
  66. geom.setMesh(null);
  67. }
  68. @Test(expected = UnsupportedOperationException.class)
  69. public void testSetMeshBatched() {
  70. Mesh m = new Mesh();
  71. Geometry geom = new Geometry();
  72. BatchNode bn = new BatchNode();
  73. geom.batch(bn, 1);
  74. geom.setMesh(m);
  75. }
  76. @Test
  77. public void testSetMesh() {
  78. Mesh m = new Mesh();
  79. Geometry geom = new Geometry();
  80. geom.setMesh(m);
  81. assertEquals(m, geom.getMesh());
  82. }
  83. @Test(expected = UnsupportedOperationException.class)
  84. public void testSetMaterialBatched() {
  85. Material m = new Material();
  86. Geometry geom = new Geometry();
  87. BatchNode bn = new BatchNode();
  88. geom.batch(bn, 1);
  89. geom.setMaterial(m);
  90. }
  91. @Test
  92. public void testSetMaterial() {
  93. Material m = new Material();
  94. Geometry geom = new Geometry();
  95. geom.setMaterial(m);
  96. assertEquals(m, geom.getMaterial());
  97. }
  98. @Test
  99. public void testUpdateModelBound() {
  100. Mesh mockedMesh = createMock(Mesh.class);
  101. mockedMesh.updateBound();
  102. expectLastCall();
  103. replay(mockedMesh);
  104. Geometry geom = new Geometry();
  105. geom.setMesh(mockedMesh);
  106. geom.updateModelBound();
  107. verify(mockedMesh);
  108. }
  109. @Test(expected = NullPointerException.class)
  110. public void testUpdateWorldBoundNoMesh() {
  111. Geometry geom = new Geometry();
  112. geom.updateWorldBound();
  113. }
  114. @Test
  115. public void testUpdateWorlBoundNoBoundingVolume() {
  116. Mesh mockedMesh = createMock(Mesh.class);
  117. expect(mockedMesh.getBound()).andReturn(null);
  118. replay(mockedMesh);
  119. Geometry geom = new Geometry();
  120. geom.setMesh(mockedMesh);
  121. geom.updateWorldBound();
  122. verify(mockedMesh);
  123. }
  124. @Test
  125. public void testUpdateWorlBoundIgnoreTransform() {
  126. Mesh mockedMesh = createMock(Mesh.class);
  127. BoundingVolume mockedBoundingVolume = createMock(BoundingVolume.class);
  128. expect(mockedMesh.getBound()).andReturn(mockedBoundingVolume).times(2);
  129. expect(mockedBoundingVolume.clone(null)).andReturn(null);
  130. replay(mockedMesh, mockedBoundingVolume);
  131. Geometry geom = new Geometry();
  132. geom.setMesh(mockedMesh);
  133. geom.setIgnoreTransform(true);
  134. geom.updateWorldBound();
  135. verify(mockedMesh, mockedBoundingVolume);
  136. }
  137. @Test
  138. public void testUpdateWorlBoundTransform() {
  139. Mesh mockedMesh = createMock(Mesh.class);
  140. BoundingVolume mockedBoundingVolume = createMock(BoundingVolume.class);
  141. expect(mockedMesh.getBound()).andReturn(mockedBoundingVolume).times(2);
  142. expect(mockedBoundingVolume.transform(anyObject(Transform.class), same((BoundingVolume) null))).andReturn(null);
  143. replay(mockedMesh, mockedBoundingVolume);
  144. Geometry geom = new Geometry();
  145. geom.setMesh(mockedMesh);
  146. geom.setIgnoreTransform(false);
  147. geom.updateWorldBound();
  148. verify(mockedMesh, mockedBoundingVolume);
  149. }
  150. }