⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scribetest.java

📁 p2p仿真器。开发者可以工作在覆盖层中进行创造和测试逻辑算法或者创建和测试新的服务。PlanetSim还可以将仿真代码平稳转换为在Internet上的实验代码
💻 JAVA
字号:
package planet.test.scribe;

import java.util.Iterator;

import junit.framework.TestCase;
import junit.framework.TestSuite;
import planet.commonapi.Application;
import planet.commonapi.Network;
import planet.commonapi.exception.InitializationException;
import planet.generic.commonapi.GenericApp;
import planet.generic.commonapi.factory.GenericFactory;
import planet.scribe.Scribe;
import planet.scribe.ScribeContent;
import planet.scribe.ScribeImpl;
import planet.scribe.Topic;
import planet.test.TestNames;

/**
 * @author <a href="mailto:Ruben.Mondejar@estudiants.urv.es">Ruben Mondejar</a>
 * @author <a href="mailto:jordi.pujol@estudiants.urv.es">Jordi Pujol</a>
 */
 
public class ScribeTest extends TestCase {
    		
	private Network network;
	
	public ScribeTest(String name) throws InitializationException {
		super(name);
	}

  protected void setUp() {
		
    try {
        //arguments: properties file, master property, application level, events, results, serialization
        GenericApp.start("../conf/master.properties",TestNames.SCRIBE_SCRIBETEST,true,false,false,false);
/*        if (!(Properties.overlayPropertiesInstance instanceof ChordProperties))
        {
            System.out.println("Only the Chord overlay can be configured for this test.");
            System.exit(-1);
        }

        Properties.simulatorQueueSize=250;
        ((ChordProperties)Properties.overlayPropertiesInstance).stabilizeSteps=2;
        ((ChordProperties)Properties.overlayPropertiesInstance).fixFingerSteps=2;  
        
        GenericApp.restart(true,false,false,false);*/
	  
    	} catch (Exception e1) {
    	  e1.printStackTrace();	
    	}	
  }


  public static junit.framework.Test suite() {
    return new TestSuite(ScribeTest.class);
  }
  
  
  
  public void testSend() throws Exception {
  	System.out.println("//// TEST SEND ////");	
	
  	int root_num = 0;  	
  	network = GenericFactory.buildNetwork();
  	network.stabilize();
	
	Topic topic = new Topic(GenericFactory.buildKey("Junit SEND TEST"));
    System.out.println(topic);
	network.stabilize();
	Scribe[] myScribes = new Scribe[network.size()];
	Iterator it = network.iterator();  		
	int i=network.size()-1;
	while (i>=0 && it.hasNext()) {
	  planet.commonapi.Node node = (planet.commonapi.Node)it.next();
	  myScribes[i] = new ScribeImpl("ScribeTest");  		 
	  node.registerApplication((Application) myScribes[i],"ScribeTest");
	  System.out.println("Application "+i+" to node "+node.getId());
	  if (myScribes[i].isRoot(topic)) {
	    System.out.println("Scribe "+i+" is root of this topic");
		root_num=i;
      }
	  i--;
	}
	
	  System.out.println("Application has been register in "+network.size()+" nodes ");
	  
	  ScribeClientTest[] Clients = new ScribeClientTest[network.size()];
	  for (int j=0;j<Clients.length;j++) {
	  	Clients[j] = new ScribeClientTest("ClientTest "+j);
        myScribes[j].subscribe(topic,Clients[j]);  		
		network.simulate();
	  }
	  network.stabilize();   

	  //send message
	  ScribeTestMessage textMissatge = new ScribeTestMessage("Activate!");
	  int random = (int) (Math.random()*((double)(network.size()-1)));
	  System.out.println("Send message from "+random+" node");
	  myScribes[random].publish(topic,textMissatge);
	  network.stabilize();  
	  
	  i=0;
	  for (int j=0;j<Clients.length;j++) 
	  	if (Clients[j].isActivated()) i++;
	  	  
	  assertEquals(Clients.length,i);		
	
  } 
  
  class ScribeTestMessage implements ScribeContent {
    String message;
    
    public ScribeTestMessage(String message) {
    	this.message = message;
    }   
    
    public String toString() {
      	return message;
    }
    
 }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -