????SummaryOfEstimatedWorkloadForRequestType??

????{30240=>[

????ActualWorkloadForReqeustWithId_30240??

????EstimatedWorkloadForRequestWithId_30240]??

????30241=>[

????ActualWorkloadForReqeustWithId_30241??

????EstimatedWorkloadForRequestWithId_30241]

????}

????SummaryOfActualWorkloadForTicketType??

????SummaryOfEstimatedWorkloadForTicketType??

????{20000=>[

????ActualWorkloadForTicketWithId_2000??

????EstimatedWorkloadForTicketWithId_2000]??

????}

????]

????}

?????????????????????????????????????????????????ζ????????

???????????

???????????????????????δ???????????????????????????????????????????飬?????????д???????????????????ɡ????????????????????????????????????μ?????????????????????????????????????????????????????Щ???????????????????????????????????????????????????????????????????

??????????????????д??????????????????????????дС?ε???????????????δ???·??????????β?????????????????е????·?????????????????????????????????????????????????????????????в???? ResourceBreakdownService????????“?????”????????????????????????Щ???????????з????????????????? – ????????????????????п???????????????????????

???????д??????????????????????????????????????

????public void testResourceBreakdown(){

????Resource resource=createResource();

????List requests=createRequests();

????assignRequestToResource(resource?? requests);

????List tickets=createTickets();

????assignTicketToResource(resource?? tickets);

????Map result=new ResourceBreakdownService().search(resource);

????verifyResult(result??resource??requests??tickets);

????}

??????????verifyResult()??????????????????????result??????????????????????е???????verifyResult()????????????????????????????????а???????????????

????private void verifyResult(Map result?? Resource rsc?? List requests??

????List tickets){

????assertTrue(result.containsKey(rsc.getId()));

????// in this simple test case?? actual workload is empty

????UtilizationBean emptyActualLoad=createDummyWorkload();

????List resourceWorkLoad=result.get(rsc.getId());

????UtilizationBean scheduleWorkload=calculateWorkload(rsc??requests);

????assertEquals(emptyActualLoad??resourceWorkLoad.get(0));

????assertEquals(scheduleWorkload??resourceWorkLoad.get(1));

????Map requestDetailWorkload = (Map)resourceWorkLoad.get(3);

????for (Request request : requests) {

????assertTrue(requestDetailWorkload.containsKey(request.getId());

????UtilizationBean scheduleWorkload0=calculateWorkload(rsc??request);

????assertEquals(emptyActualLoad??requestDetailWorkload.get(request.getId()).get(0));

????assertEquals(scheduleWorkload0??requestDetailWorkload.get(request.getId()).get(1));

????}

????// omit code to check tickets

????...

????}

???????????????????

??????????????????????????????????????????????????ResourceBreakdownService().search????????????????????????????????????????????????Щ????????????????????????????????????????н????κε????????????????????????????????????????????????????????????????????????????

????ServerMain??????????????????????????????????????????????????й??????????????????????д??????????10?????????????Spring??Hibernate??Щ??????JBoss??Tomcat?????e????????Щ????????????ò???????????????????????????????????????????????????????????????????????????????????????????JBoss??Tomcat(????????????????????????Щ???????????????????????д???????????????????????????????)??

???????????ServerMain?????TestServerMain???У???????TestServerMain.main()??????????????????????

????org.springframework.beans.factory.BeanInitializationException: Could not load

????properties; nested exception is

????java.io.FileNotFoundException: class path resource [database.properties] cannot

????be opened because it does not exist

????at

????org.springframework.beans.factory.config.PropertyResourceConfigurer.

????postProcessBeanFactory(PropertyResourceConfigurer.java:78)

?????e??????????!???????????database.properties?????????????????????????в???????в??????????γ???????????????????

????java.io.FileNotFoundException: .server.conf (The system cannot find the file specified)

????at java.io.FileInputStream.open(Native Method)