Package com.artemis

Source Code of com.artemis.PackedComponentTest

package com.artemis;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;

import java.util.ArrayList;
import java.util.List;

import org.junit.Before;
import org.junit.Test;

import com.artemis.component.Packed;

public class PackedComponentTest
{
  private World world;
  private ComponentMapper<Packed> packedMapper;

  @Before
  public void init() {
    world = new World();
    packedMapper = world.getMapper(Packed.class);
  }
 
  @Test
  public void packed_components_are_known_to_mapper() {
    world.initialize();
   
    List<Entity> packed = new ArrayList<Entity>();
    packed.add(createEntity(Packed.class));
    packed.add(createEntity(Packed.class));
    packed.add(createEntity(Packed.class));
    Entity notPresent = createEntity();
    packed.add(createEntity(Packed.class));
    packed.add(createEntity(Packed.class));
   
    for (Entity e : packed) {
       assertTrue(packedMapper.has(e));
    }
     assertFalse(packedMapper.has(notPresent));
    
     packed.get(1).edit().remove(Packed.class);
     for (int i = 0; packed.size() > i; i++) {
       if (i != 1) assertTrue(packedMapper.has(packed.get(i)));
     }
     assertFalse(packedMapper.has(packed.get(1)));
  }
 
  @Test
  public void packed_component_mappers_return_new_instance_on_request() {
    world.initialize();
   
    Entity e1 = createEntity(Packed.class);
    Entity e2 = createEntity(Packed.class);
    Packed packed1 = packedMapper.get(e1, true);
    Packed packed2 = packedMapper.get(e2, true);

    assertNotEquals(packed1.entityId, packed2.entityId);
  }
 
  @SuppressWarnings("unchecked")
  private Entity createEntity(Class<?>... components) {
    Entity e = world.createEntity();
    for (Class<?> c : components) {
      e.edit().create((Class<Component>)c);
    }
   
    return e;
  }
}
TOP

Related Classes of com.artemis.PackedComponentTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.