Enterprise Java Development@TOPIC@
The end-to-end scenario will test your end-to-end application in a "happy path" scenario. Any white-box or black-box testing of alternate and error paths would be appropriate to put in the separate unit and IT tests.
Provide JUnit IT tests that verify the EJB functionality of eSales accessed through its remote interface using new access control restrictions.
Provide JUnit IT tests that verify the EJB functionality of eBidbot using its new access control restrictions and ability to authenticate with eSales.
Provide a JUnit IT tests that demonstrates the functionality of the JavaEE interceptor/validator.
Implement the scripted use case below as an automated JUnit test and manually accessed script through the Web UI. All command line implementations must be wrapped in an Ant runtime script to encapsulate the classpath details in a portable manner (see the class jmsNotifier project for an example of using an Ant runtime script). The full JSE subscriber need not be part of the automated end-to-end JUnit test. The JUnit test/module must be delivered in a state that can be executed in a debugger -- whether directly within Eclipse or using a remote debugging session.
eSales initializes the EJB Timer to check for expired auctions
eBidbot initializes the EJB Timer to check auctions associated with its bids.
admin1 resets all eSales tables (using the eSalesTestUtilEJB)
admin1 populates the eSales tables (using the ESalesIngestor)
admin2 resets the eBidbot tables (using the EBidbotTestUtilEJB)
admin2 populates the eBidbot tables (using the EBidTestUtilEJB) if necessary. Suggest adding account for user3 at this point.
user1 creates auction
user2 gets a list of open auctions
user2 places bid on an auction
user2 views the current status of the auction they are bidding on
user3 gets a list of open auctions
user3 views the current status of the auction that was bid by user2
user3 places order with eBidbot
eBidbot EJB wakes up from an EJB Timer
eBidbot EJB places bid for user3
user2 places another bid on auction
eBidbot EJB wakes up again from an EJBTimer
eBidbot EJB sees they have been raised and places another bid for user3
eSales EJB wakes up from an EJBTimer and closes the auction
eSales EJB publishes a message to the topic that informs everyone of the closing and that user3 has win.
The eBidbot MDB receives the message and updates the order.
The stand-alone client recieves the message if it matches their JMS selector for a specific category.
user3 checks their order with eBidbot and finds out they won