50 p.put(Context.SECURITY_PRINCIPAL, USER);
51 p.put(Context.SECURITY_CREDENTIALS, PWD);
52 p.put(Context.PROVIDER_URL, URL);
53 System.out.println("Contacting server " + URL + " as " + USER + " for " + JNDI_NAME);
54 InitialContext ctx = new InitialContext(p);
55 service = (JPAService)ctx.lookup(JNDI_NAME);
56 }
57 }
58
59 /**
60 * Asserts that the Persistence Provider class name contains the logical
61 * name of the intended provider i.e. kodo or hibernate.
62 *
63 */
64 public void testProvider() {
65 String actual = service.getProvider();
66 System.err.println("Logical Persistence Provider is [" + PERSISTENCE_PROVIDER + "]");
67 System.err.println("Actual Persistence Provider is [" + actual + "]");
68 assertTrue("*** ERROR: " + actual + " is not provided by " + PERSISTENCE_PROVIDER, actual.indexOf(PERSISTENCE_PROVIDER) != -1);
69 }
70
71 /**
72 * Simply logs (persists) a message via the remote service.
73 * The service will affix a timestamp with the persisted message it returns.
74 * Verifies that the timestamp against the time when the message has been
75 * sent.
76 *
77 */
78 public void testLog() {
79 long senderTime = System.currentTimeMillis();
80 String body = "A message sent for logging on " + senderTime;
81 Message message = service.log(body);
82 long createTime = message.getTimestamp().getTime();
83 long elapsedTime = createTime - senderTime;
84 System.err.println("Persisted Message [id:" + message.getId() + " timestamp:" +
85 message.getTimestamp().getTime() + " body:"+ message.getBody() + "]");
86 System.err.println("Time elapsed between the message to send and persisted is " + elapsedTime + "ms");
87 assertTrue(elapsedTime>=0);
88 }
89 }
testProvider()測試方法檢驗這個服務是否為JPA提供者的包含提供者邏輯名的 EntityManager的實現返回了一個類名。另一個測試方法檢驗服務返回的Message實例是否擁有提供者分配的正確身份。
構建JPA應用程序和切換提供者的Ant 腳本
在運行代碼之前,最后一步是使用 Ant 編寫的 構建腳本。
文章來源于領測軟件測試網 http://www.kjueaiud.com/