test clientsFile handlers.
[vamsas.git] / src / org / vamsas / test / simpleclient / ClientsFileTest.java
1 package org.vamsas.test.simpleclient;
2
3 import java.util.Iterator;
4 import java.util.Vector;
5
6 import org.vamsas.client.ClientHandle;
7 import org.vamsas.client.simpleclient.ClientsFile;
8
9 public class ClientsFileTest {
10   private static Vector commands;
11   static {
12     ClientsFileTest.commands=new Vector();
13     ClientsFileTest.commands.add(new String("add"));
14     ClientsFileTest.commands.add(new String("remove"));
15     ClientsFileTest.commands.add(new String("list"));    
16     ClientsFileTest.commands.add(new String("clear"));
17   }
18   private static void complainArgs(int argl, int argpos, String cmd, int argneed, String msg) {
19     if (argl-argpos<argneed)
20       throw new Error(cmd+" needs "+argneed+" arguments : "+msg);
21   }
22   public static void main(String[] args) {
23     java.io.File cf = new java.io.File(args[0]);
24     System.out.println("Connecting to clientFile "+args[0]);
25     ClientsFile cfhand;
26     try {
27       cfhand = new ClientsFile(cf);
28     }
29     catch (Exception e) {
30       e.printStackTrace(System.err);
31       return;
32     }
33     int argc=0;
34     while (argc<args.length) {
35       argc++;
36       Iterator coms = commands.iterator();
37       int com=-1;
38       while ((coms!=null) && coms.hasNext()) {
39         com++;
40         if (args[argc].toLowerCase().equals((String) coms.next())) {
41           System.out.println("Doing "+args[argc]);
42           ClientHandle ch;
43           argc++;
44           switch (com) {
45           case 0:
46             // Add
47             ClientsFileTest.complainArgs(args.length, argc, "add", 2, "for the Client's 'Name' and 'Version'");
48             int pos = cfhand.addClient(ch=new ClientHandle(args[argc],args[argc+1]));
49             argc+=1;
50             if (pos!=0)
51               System.out.println("Client added at "+pos+" as urn:"+ch.getClientUrn());
52             else
53               System.out.println("Client was not added.");
54             break;
55           case 1:
56             // remove
57             ClientsFileTest.complainArgs(args.length, argc, "remove", 3, "for the Client's 'Name', Version and URN");
58             ch=new ClientHandle(args[argc], args[argc+1]);
59             ch.setClientUrn(args[argc+2]);
60             argc+=2;
61             cfhand.removeClient(ch);
62             System.out.println("Client removed (apparently)");
63             break;
64           case 2:
65             // list
66             ClientHandle[] chlist = cfhand.retrieveClientList();
67             if (chlist!=null) {
68               for (int chi=0,che=chlist.length; chi<che; chi++) {
69                 System.out.println("Client "+chi+" ("+chlist[chi].getClientName()+" "+chlist[chi].getVersion()+" "+chlist[chi].getClientUrn()+")");
70               }
71             } else {
72               System.out.println("Client list is empty.");
73             }
74             break;
75           case 3:
76             // clear
77             cfhand = null;
78             cf.delete();
79             try {
80               cf.createNewFile();
81               cfhand = new ClientsFile(cf);
82             }
83             catch (Exception e) {
84               System.err.println("Failed on new empty clientfile creation!");
85               e.printStackTrace(System.err);
86             }
87             break;
88           }
89           coms = null;
90         }
91       }
92       if (coms!=null) {
93         System.err.println("Unknown command : "+args[argc] + "*Ignored!*");
94       };
95     }
96   }
97
98 }