Package net.cloudcodex.server.test

Source Code of net.cloudcodex.server.test.MessageTester$IndexMessageComparator

package net.cloudcodex.server.test;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.cloudcodex.server.Context;
import net.cloudcodex.server.data.AdvancedDAO;
import net.cloudcodex.server.data.Data;
import net.cloudcodex.server.data.Data.Campaign;
import net.cloudcodex.server.data.Data.Message;
import net.cloudcodex.server.data.Data.Scene;
import net.cloudcodex.server.data.campaign.msg.SceneSDO;
import net.cloudcodex.server.service.CampaignService;
import net.cloudcodex.server.service.HomeService;
import net.cloudcodex.server.service.MessageService;
import net.cloudcodex.shared.MessageAction;

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

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;


public class MessageTester {

    private final LocalServiceTestHelper helper =
        new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

    private CampaignService campaignService;

    private MessageService messageService;

    private HomeService homeService;

    private AdvancedDAO dao;
   
    private Data.User master;
    private Data.User player1;
    private Data.User player2;
    private Data.User player3;
    private Campaign campaign;
    private long campaignId;
    private Data.Character char1;
    private long char1Id;
    private Data.Character char2;
    private long char2Id;
    private Data.Character char3;
    private long char3Id;
    private Data.Character npc1;
    private long npc1Id;
    private Data.Character npc2;
    private long npc2Id;
    private Data.Character npc3;
    private long npc3Id;
   
    @Before
    public void setUp() {
        helper.setUp();
        DatastoreService store = DatastoreServiceFactory.getDatastoreService();
        campaignService = new CampaignService(store);
        messageService = new MessageService(store);
        homeService = new HomeService(store);
        dao = new AdvancedDAO(store);
       
    master = homeService.createUser(null, "master@test.com", "Master");
      player1 = homeService.createUser(null, "player1@test.com", "Player1");
    player2 = homeService.createUser(null, "player2@test.com", "Player2");
    player3 = homeService.createUser(null, "player3@test.com", "Player3");
   
    campaign = campaignService.createCampaign(null, "Test Campaign", "Some game", "Some desc", null, master);
    campaignId = campaign.getKey().getId();
   
    char1 = campaignService.createCharacter(null, campaign, "Char1", player1, null, null);
    char1Id = char1.getKey().getId();
    char2 = campaignService.createCharacter(null, campaign, "Char2", player2, null, null);
    char2Id = char2.getKey().getId();
    char3 = campaignService.createCharacter(null, campaign, "Char3", player3, null, null);
    char3Id = char3.getKey().getId();
   
    npc1 = campaignService.createCharacter(null, campaign, "NPC1", null, null, null);
    npc1Id = npc1.getKey().getId();
    npc2 = campaignService.createCharacter(null, campaign, "NPC2", null, null, null);
    npc2Id = npc2.getKey().getId();
    npc3 = campaignService.createCharacter(null, campaign, "NPC3", null, null, null);
    npc3Id = npc3.getKey().getId();
    }

    @After
    public void tearDown() {
        helper.tearDown();
        campaignService = null;
        homeService = null;
        dao = null;
    }

    @Test
    public void test1() {
     
      final Context context = new Context(player1);

      // Remember that dice of others cannot be seen by the player, they're just here.
     
      System.out.println(messageService.justForTestsCreateSequenceRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemRollDicesRandomly(context, campaignId, char1Id));
     
      System.out.println(messageService.justForTestsCreateSequenceRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemRollDicesRandomly(context, campaignId, char1Id));

      System.out.println(messageService.justForTestsCreateSequenceRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemTalkRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsMakeThemRollDicesRandomly(context, campaignId, char1Id));
     
      System.out.println(messageService.justForTestsDeleteMessageRandomly(context, campaignId, char1Id));
      System.out.println(messageService.justForTestsInsertOFFRandomly(context, campaignId, char1Id));
     
      {
          final List<SceneSDO> scenes = messageService.getMessages(context,
              campaignId, char1Id, null, null);

        System.out.println(messageService.playerPostAction(
          context, campaignId, char1Id,
          scenes.get(scenes.size() - 1).getScene().getKey().getId(), new Date(),
          MessageAction.WHISP, "This is a whisp"));
       
      }
     
      {
          List<Scene> scenes = dao.asListOfScenes(null, dao.queryScene(campaign.getKey()), null);
        if(scenes != null) {
          for(Scene seq : scenes) {
            System.err.println(seq.getEntity());
            final List<Message> messages =
              dao.asListOfMessages(null,
                dao.queryMessage(seq.getKey()), null,
                Message.Properties.TIMESTAMP);
            if(messages != null) {
              for(Message msg : messages) {
                System.err.println(msg.getEntity());
              }
            }
          }
        }
      }
     
      dumpMessages(context, campaignId, char1Id);
      System.out.println(messageService.justForTestsReindexRandomly(context, campaignId, char1Id));
      dumpMessages(context, campaignId, char1Id);

    }
   
    public static class IndexMessageComparator implements Comparator<Message> {

    @Override
    public int compare(Message o1, Message o2) {
      if(o1 == null && o2 == null) {
        return 0;
      }
      if(o1 == null) {
        return -1;
      }
      if(o2 == null) {
        return 1;
      }
      return o1.getIndex().compareTo(o2.getIndex());
    }
   
  }
   
    private void dumpMessages(Context context, long campaignId, long characterId) {
     
      System.out.println("----------------------------------------");
      final List<SceneSDO> scenes = messageService.getMessages(context, campaignId, characterId, null, null);
      for(SceneSDO sdo  : scenes) {
       
        final Map<Key, Data.Character> map = new HashMap<Key, Data.Character>();
        final StringBuffer buffer = new StringBuffer("Sequence with : ");
        for(Data.Character character : sdo.getCharacters()) {
          buffer.append(character.getName()).append(", ");
          map.put(character.getKey(), character);
        }
        System.out.println(buffer.toString());
       
        Collections.sort(sdo.getMessages(), new IndexMessageComparator());
        for(Message message : sdo.getMessages()) {
          final Data.Character character = map.get(message.getAuthor());
          final String author = character == null ? "GM" : character.getName();
          System.out.println("\t" + author + "(" + message.getKey().getId() + ") : " + message.getContent());
        }
      }
    }
 
}
TOP

Related Classes of net.cloudcodex.server.test.MessageTester$IndexMessageComparator

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.