001 package org.kuali.student.lum.statement.config.context; 002 003 import java.util.ArrayList; 004 import java.util.Arrays; 005 import java.util.HashMap; 006 import java.util.List; 007 import java.util.Map; 008 009 import org.junit.Assert; 010 import org.junit.Before; 011 import org.junit.Test; 012 import org.kuali.student.common.dictionary.dto.ObjectStructureDefinition; 013 import org.kuali.student.common.dto.StatusInfo; 014 import org.kuali.student.common.exceptions.AlreadyExistsException; 015 import org.kuali.student.common.exceptions.DataValidationErrorException; 016 import org.kuali.student.common.exceptions.DoesNotExistException; 017 import org.kuali.student.common.exceptions.InvalidParameterException; 018 import org.kuali.student.common.exceptions.MissingParameterException; 019 import org.kuali.student.common.exceptions.OperationFailedException; 020 import org.kuali.student.common.exceptions.PermissionDeniedException; 021 import org.kuali.student.common.exceptions.VersionMismatchException; 022 import org.kuali.student.common.search.dto.SearchCriteriaTypeInfo; 023 import org.kuali.student.common.search.dto.SearchRequest; 024 import org.kuali.student.common.search.dto.SearchResult; 025 import org.kuali.student.common.search.dto.SearchResultTypeInfo; 026 import org.kuali.student.common.search.dto.SearchTypeInfo; 027 import org.kuali.student.core.statement.dto.ReqCompFieldInfo; 028 import org.kuali.student.core.statement.dto.ReqComponentInfo; 029 import org.kuali.student.lum.lrc.dto.CredentialInfo; 030 import org.kuali.student.lum.lrc.dto.CredentialTypeInfo; 031 import org.kuali.student.lum.lrc.dto.CreditInfo; 032 import org.kuali.student.lum.lrc.dto.CreditTypeInfo; 033 import org.kuali.student.lum.lrc.dto.GradeInfo; 034 import org.kuali.student.lum.lrc.dto.GradeTypeInfo; 035 import org.kuali.student.lum.lrc.dto.ResultComponentInfo; 036 import org.kuali.student.lum.lrc.dto.ResultComponentTypeInfo; 037 import org.kuali.student.lum.lrc.dto.ScaleInfo; 038 import org.kuali.student.lum.lrc.service.LrcService; 039 import org.kuali.student.lum.statement.typekey.ReqComponentFieldTypes; 040 041 public class LrcContextImplTest { 042 private LrcService lrcService = new LrcServiceMock(); 043 private LrcContextImpl lrcContext = new LrcContextImpl(); 044 private ReqComponentInfo reqComponent1; 045 private ReqComponentInfo reqComponent2; 046 private ReqComponentInfo reqComponent3; 047 private ReqComponentInfo reqComponent4; 048 049 private void setupReqComponent1() { 050 reqComponent1 = new ReqComponentInfo(); 051 List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>(); 052 ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo(); 053 reqCompField1.setType(ReqComponentFieldTypes.GRADE_KEY.getId()); 054 reqCompField1.setValue("A"); 055 reqCompFieldList.add(reqCompField1); 056 ReqCompFieldInfo reqCompField2 = new ReqCompFieldInfo(); 057 reqCompField2.setType(ReqComponentFieldTypes.GRADE_TYPE_KEY.getId()); 058 reqCompField2.setValue("kuali.resultComponent.grade.letter"); 059 reqCompFieldList.add(reqCompField2); 060 061 reqComponent1.setReqCompFields(reqCompFieldList); 062 } 063 064 private void setupReqComponent2() { 065 reqComponent2 = new ReqComponentInfo(); 066 List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>(); 067 ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo(); 068 reqCompField1.setType(ReqComponentFieldTypes.GRADE_KEY.getId()); 069 reqCompField1.setValue(null); 070 reqCompFieldList.add(reqCompField1); 071 ReqCompFieldInfo reqCompField2 = new ReqCompFieldInfo(); 072 reqCompField2.setType(ReqComponentFieldTypes.GRADE_TYPE_KEY.getId()); 073 reqCompField2.setValue(null); 074 reqCompFieldList.add(reqCompField2); 075 076 reqComponent2.setReqCompFields(reqCompFieldList); 077 } 078 079 private void setupReqComponent3() { 080 reqComponent3 = new ReqComponentInfo(); 081 List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>(); 082 ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo(); 083 reqCompField1.setType(ReqComponentFieldTypes.GRADE_TYPE_KEY.getId()); 084 reqCompField1.setValue("kuali.resultComponent.grade.letter"); 085 reqCompFieldList.add(reqCompField1); 086 087 reqComponent3.setReqCompFields(reqCompFieldList); 088 } 089 090 private void setupReqComponent4() { 091 reqComponent4 = new ReqComponentInfo(); 092 List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>(); 093 ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo(); 094 reqCompField1.setType(ReqComponentFieldTypes.GRADE_KEY.getId()); 095 reqCompField1.setValue("A"); 096 reqCompFieldList.add(reqCompField1); 097 098 reqComponent4.setReqCompFields(reqCompFieldList); 099 } 100 101 @Before 102 public void beforeMethod() { 103 lrcContext.setLrcService(lrcService); 104 setupReqComponent1(); 105 setupReqComponent2(); 106 setupReqComponent3(); 107 setupReqComponent4(); 108 } 109 110 @Test 111 public void testCreateContextMap() throws OperationFailedException { 112 Map<String, Object> contextMap = lrcContext.createContextMap(reqComponent1); 113 Assert.assertNotNull(contextMap); 114 Assert.assertTrue(contextMap.containsKey(LrcContextImpl.GRADE_TOKEN)); 115 Assert.assertTrue(contextMap.containsKey(LrcContextImpl.GRADE_TYPE_TOKEN)); 116 } 117 118 @Test 119 public void testCreateContextMap_GradeTypeToken() throws OperationFailedException { 120 Map<String, Object> contextMap = lrcContext.createContextMap(reqComponent3); 121 Assert.assertNotNull(contextMap); 122 Assert.assertTrue(contextMap.containsKey(LrcContextImpl.GRADE_TYPE_TOKEN)); 123 } 124 125 @Test 126 public void testCreateContextMap_GradeToken() throws OperationFailedException { 127 Map<String, Object> contextMap = lrcContext.createContextMap(reqComponent4); 128 Assert.assertNotNull(contextMap); 129 Assert.assertTrue(contextMap.containsKey(LrcContextImpl.GRADE_TOKEN)); 130 } 131 132 @Test 133 public void testCreateContextMap_GradeTypeTokenValues() throws OperationFailedException { 134 Map<String, Object> contextMap = lrcContext.createContextMap(reqComponent3); 135 ResultComponentInfo gradeTypeId = (ResultComponentInfo) contextMap.get(LrcContextImpl.GRADE_TYPE_TOKEN); 136 137 Assert.assertEquals("kuali.resultComponent.grade.letter", gradeTypeId.getId()); 138 } 139 140 @Test 141 public void testCreateContextMap_GradeTokenValues() throws OperationFailedException { 142 Map<String, Object> contextMap = lrcContext.createContextMap(reqComponent4); 143 ResultComponentInfo gradeTypeId = (ResultComponentInfo) contextMap.get(LrcContextImpl.GRADE_TYPE_TOKEN); 144 String gradeId = (String) contextMap.get(LrcContextImpl.GRADE_TOKEN); 145 146 Assert.assertEquals("kuali.resultComponent.grade.letter", gradeTypeId.getId()); 147 Assert.assertEquals("A", gradeId); 148 } 149 150 @Test 151 public void testCreateContextMap_TokenValues() throws OperationFailedException { 152 Map<String, Object> contextMap = lrcContext.createContextMap(reqComponent1); 153 ResultComponentInfo gradeTypeId = (ResultComponentInfo) contextMap.get(LrcContextImpl.GRADE_TYPE_TOKEN); 154 String gradeId = (String) contextMap.get(LrcContextImpl.GRADE_TOKEN); 155 156 Assert.assertEquals("kuali.resultComponent.grade.letter", gradeTypeId.getId()); 157 Assert.assertEquals("A", gradeId); 158 } 159 160 @Test 161 public void testCreateContextMap_NullTokenValues() throws OperationFailedException { 162 Map<String, Object> contextMap = lrcContext.createContextMap(reqComponent2); 163 ResultComponentInfo gradeTypeId = (ResultComponentInfo) contextMap.get(LrcContextImpl.GRADE_TYPE_TOKEN); 164 String gradeId = (String) contextMap.get(LrcContextImpl.GRADE_TOKEN); 165 166 Assert.assertEquals(null, gradeTypeId); 167 Assert.assertEquals(null, gradeId); 168 } 169 170 private static class LrcServiceMock implements LrcService { 171 172 private Map<String, ResultComponentInfo> resultComponentMap = new HashMap<String, ResultComponentInfo>(); 173 private List<ResultComponentTypeInfo> resultComponentTypeList = new ArrayList<ResultComponentTypeInfo>(); 174 private Map<String, List<String>> typeIdMap = new HashMap<String, List<String>>(); 175 176 public LrcServiceMock() { 177 ResultComponentInfo rc1 = new ResultComponentInfo(); 178 rc1.setId("kuali.resultComponent.grade.letter"); 179 rc1.setName("Letter"); 180 rc1.setResultValues(Arrays.asList(new String[] {"A", "B", "C", "D", "F"})); 181 resultComponentMap.put("kuali.resultComponent.grade.letter", rc1); 182 183 ResultComponentInfo rc2 = new ResultComponentInfo(); 184 rc2.setId("kuali.resultComponent.grade.passFail"); 185 rc2.setName("Pass-Fail"); 186 rc2.setResultValues(Arrays.asList(new String[] {"Pass", "Fail"})); 187 resultComponentMap.put("kuali.resultComponent.grade.passFail", rc2); 188 189 ResultComponentTypeInfo type1 = new ResultComponentTypeInfo(); 190 type1.setId("kuali.resultComponentType.grade.finalGrade"); 191 type1.setName("Final Grade"); 192 resultComponentTypeList.add(type1); 193 194 ResultComponentTypeInfo type2 = new ResultComponentTypeInfo(); 195 type2.setId("kuali.resultComponentType.credit.degree.fixed"); 196 type2.setName("Fixed Number"); 197 resultComponentTypeList.add(type2); 198 199 typeIdMap.put("kuali.resultComponentType.grade.finalGrade", Arrays.asList(new String[] {"kuali.resultComponent.grade.letter", "kuali.resultComponent.grade.passFail"})); 200 } 201 202 @Override 203 public String compareGrades(String gradeKey, String scaleKey, 204 String compareGradeKey, String compareScaleKey) 205 throws InvalidParameterException, MissingParameterException, 206 OperationFailedException { 207 // TODO Auto-generated method stub 208 return null; 209 } 210 211 @Override 212 public ResultComponentInfo createResultComponent( 213 String resultComponentTypeKey, 214 ResultComponentInfo resultComponentInfo) 215 throws AlreadyExistsException, DataValidationErrorException, 216 DoesNotExistException, InvalidParameterException, 217 MissingParameterException, OperationFailedException, 218 PermissionDeniedException { 219 // TODO Auto-generated method stub 220 return null; 221 } 222 223 @Override 224 public StatusInfo deleteResultComponent(String resultComponentId) 225 throws DoesNotExistException, InvalidParameterException, 226 MissingParameterException, OperationFailedException, 227 PermissionDeniedException { 228 // TODO Auto-generated method stub 229 return null; 230 } 231 232 @Override 233 public CredentialInfo getCredential(String credentialKey) 234 throws DoesNotExistException, InvalidParameterException, 235 MissingParameterException, OperationFailedException { 236 // TODO Auto-generated method stub 237 return null; 238 } 239 240 @Override 241 public List<String> getCredentialKeysByCredentialType( 242 String credentialTypeKey) throws DoesNotExistException, 243 InvalidParameterException, MissingParameterException, 244 OperationFailedException { 245 // TODO Auto-generated method stub 246 return null; 247 } 248 249 @Override 250 public CredentialTypeInfo getCredentialType(String credentialTypeKey) 251 throws DoesNotExistException, InvalidParameterException, 252 MissingParameterException, OperationFailedException { 253 // TODO Auto-generated method stub 254 return null; 255 } 256 257 @Override 258 public List<CredentialTypeInfo> getCredentialTypes() 259 throws OperationFailedException { 260 // TODO Auto-generated method stub 261 return null; 262 } 263 264 @Override 265 public List<CredentialInfo> getCredentialsByKeyList( 266 List<String> credentialKeyList) throws DoesNotExistException, 267 InvalidParameterException, MissingParameterException, 268 OperationFailedException { 269 // TODO Auto-generated method stub 270 return null; 271 } 272 273 @Override 274 public CreditInfo getCredit(String creditKey) 275 throws DoesNotExistException, InvalidParameterException, 276 MissingParameterException, OperationFailedException { 277 // TODO Auto-generated method stub 278 return null; 279 } 280 281 @Override 282 public List<String> getCreditKeysByCreditType(String creditTypeKey) 283 throws DoesNotExistException, InvalidParameterException, 284 MissingParameterException, OperationFailedException { 285 // TODO Auto-generated method stub 286 return null; 287 } 288 289 @Override 290 public CreditTypeInfo getCreditType(String creditTypeKey) 291 throws DoesNotExistException, InvalidParameterException, 292 MissingParameterException, OperationFailedException { 293 // TODO Auto-generated method stub 294 return null; 295 } 296 297 @Override 298 public List<CreditTypeInfo> getCreditTypes() 299 throws OperationFailedException { 300 // TODO Auto-generated method stub 301 return null; 302 } 303 304 @Override 305 public List<CreditInfo> getCreditsByKeyList(List<String> creditKeyList) 306 throws DoesNotExistException, InvalidParameterException, 307 MissingParameterException, OperationFailedException { 308 // TODO Auto-generated method stub 309 return null; 310 } 311 312 @Override 313 public GradeInfo getGrade(String gradeKey) 314 throws DoesNotExistException, InvalidParameterException, 315 MissingParameterException, OperationFailedException { 316 // TODO Auto-generated method stub 317 return null; 318 } 319 320 @Override 321 public List<String> getGradeKeysByGradeType(String gradeTypeKey) 322 throws DoesNotExistException, InvalidParameterException, 323 MissingParameterException, OperationFailedException { 324 // TODO Auto-generated method stub 325 return null; 326 } 327 328 @Override 329 public GradeTypeInfo getGradeType(String gradeTypeKey) 330 throws DoesNotExistException, InvalidParameterException, 331 MissingParameterException, OperationFailedException { 332 // TODO Auto-generated method stub 333 return null; 334 } 335 336 @Override 337 public List<GradeTypeInfo> getGradeTypes() 338 throws OperationFailedException { 339 // TODO Auto-generated method stub 340 return null; 341 } 342 343 @Override 344 public List<GradeInfo> getGradesByKeyList(List<String> gradeKeyList) 345 throws DoesNotExistException, InvalidParameterException, 346 MissingParameterException, OperationFailedException { 347 // TODO Auto-generated method stub 348 return null; 349 } 350 351 @Override 352 public List<GradeInfo> getGradesByScale(String scale) 353 throws DoesNotExistException, InvalidParameterException, 354 MissingParameterException, OperationFailedException { 355 // TODO Auto-generated method stub 356 return null; 357 } 358 359 @Override 360 public ResultComponentInfo getResultComponent(String resultComponentId) 361 throws DoesNotExistException, InvalidParameterException, 362 MissingParameterException, OperationFailedException { 363 return resultComponentMap.get(resultComponentId); 364 } 365 366 @Override 367 public List<String> getResultComponentIdsByResult(String resultValueId, 368 String resultComponentTypeKey) throws DoesNotExistException, 369 InvalidParameterException, MissingParameterException, 370 OperationFailedException { 371 // TODO Auto-generated method stub 372 return null; 373 } 374 375 @Override 376 public List<String> getResultComponentIdsByResultComponentType( 377 String resultComponentTypeKey) throws DoesNotExistException, 378 InvalidParameterException, MissingParameterException, 379 OperationFailedException { 380 return typeIdMap.get(resultComponentTypeKey); 381 } 382 383 @Override 384 public ResultComponentTypeInfo getResultComponentType( 385 String resultComponentTypeKey) throws DoesNotExistException, 386 InvalidParameterException, MissingParameterException, 387 OperationFailedException { 388 // TODO Auto-generated method stub 389 return null; 390 } 391 392 @Override 393 public List<ResultComponentTypeInfo> getResultComponentTypes() 394 throws OperationFailedException { 395 return this.resultComponentTypeList; 396 } 397 398 @Override 399 public ScaleInfo getScale(String scaleKey) 400 throws DoesNotExistException, InvalidParameterException, 401 MissingParameterException, OperationFailedException { 402 // TODO Auto-generated method stub 403 return null; 404 } 405 406 @Override 407 public List<GradeInfo> translateGrade(String gradeKey, String scaleKey, 408 String translateScaleKey) throws InvalidParameterException, 409 MissingParameterException, OperationFailedException { 410 // TODO Auto-generated method stub 411 return null; 412 } 413 414 @Override 415 public ResultComponentInfo updateResultComponent( 416 String resultComponentId, 417 ResultComponentInfo resultComponentInfo) 418 throws DataValidationErrorException, DoesNotExistException, 419 InvalidParameterException, MissingParameterException, 420 OperationFailedException, PermissionDeniedException, 421 VersionMismatchException { 422 // TODO Auto-generated method stub 423 return null; 424 } 425 426 @Override 427 public SearchCriteriaTypeInfo getSearchCriteriaType( 428 String searchCriteriaTypeKey) throws DoesNotExistException, 429 InvalidParameterException, MissingParameterException, 430 OperationFailedException { 431 // TODO Auto-generated method stub 432 return null; 433 } 434 435 @Override 436 public List<SearchCriteriaTypeInfo> getSearchCriteriaTypes() 437 throws OperationFailedException { 438 // TODO Auto-generated method stub 439 return null; 440 } 441 442 @Override 443 public SearchResultTypeInfo getSearchResultType( 444 String searchResultTypeKey) throws DoesNotExistException, 445 InvalidParameterException, MissingParameterException, 446 OperationFailedException { 447 // TODO Auto-generated method stub 448 return null; 449 } 450 451 @Override 452 public List<SearchResultTypeInfo> getSearchResultTypes() 453 throws OperationFailedException { 454 // TODO Auto-generated method stub 455 return null; 456 } 457 458 @Override 459 public SearchTypeInfo getSearchType(String searchTypeKey) 460 throws DoesNotExistException, InvalidParameterException, 461 MissingParameterException, OperationFailedException { 462 // TODO Auto-generated method stub 463 return null; 464 } 465 466 @Override 467 public List<SearchTypeInfo> getSearchTypes() 468 throws OperationFailedException { 469 // TODO Auto-generated method stub 470 return null; 471 } 472 473 @Override 474 public List<SearchTypeInfo> getSearchTypesByCriteria( 475 String searchCriteriaTypeKey) throws DoesNotExistException, 476 InvalidParameterException, MissingParameterException, 477 OperationFailedException { 478 // TODO Auto-generated method stub 479 return null; 480 } 481 482 @Override 483 public List<SearchTypeInfo> getSearchTypesByResult( 484 String searchResultTypeKey) throws DoesNotExistException, 485 InvalidParameterException, MissingParameterException, 486 OperationFailedException { 487 // TODO Auto-generated method stub 488 return null; 489 } 490 491 @Override 492 public SearchResult search(SearchRequest searchRequest) 493 throws MissingParameterException { 494 // TODO Auto-generated method stub 495 return null; 496 } 497 498 @Override 499 public ObjectStructureDefinition getObjectStructure(String objectTypeKey) { 500 // TODO Kamal - THIS METHOD NEEDS JAVADOCS 501 return null; 502 } 503 504 @Override 505 public List<String> getObjectTypes() { 506 // TODO Kamal - THIS METHOD NEEDS JAVADOCS 507 return null; 508 } 509 510 } 511 }