1 package org.kuali.student.lum.statement.config.context; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.Map; 6 7 import org.junit.Assert; 8 import org.junit.Before; 9 import org.junit.Test; 10 import org.kuali.student.common.test.spring.AbstractServiceTest; 11 import org.kuali.student.common.test.spring.Client; 12 import org.kuali.student.common.test.spring.Dao; 13 import org.kuali.student.common.test.spring.Daos; 14 import org.kuali.student.common.test.spring.PersistenceFileLocation; 15 import org.kuali.student.r2.lum.statement.config.context.util.NLCluSet; 16 import org.kuali.student.r1.core.statement.dto.ReqCompFieldInfo; 17 import org.kuali.student.r1.core.statement.dto.ReqComponentInfo; 18 import org.kuali.student.r1.lum.statement.typekey.ReqComponentFieldTypes; 19 import org.kuali.student.r2.common.exceptions.OperationFailedException; 20 import org.kuali.student.r2.common.util.ContextUtils; 21 import org.kuali.student.r2.lum.clu.dto.CluInfo; 22 import org.kuali.student.r2.lum.clu.service.CluService; 23 import org.kuali.student.r2.lum.statement.config.context.CluContextImpl; 24 25 @Daos( { @Dao(value = "org.kuali.student.r2.lum.lu.dao.impl.LuDaoImpl", testSqlFile = "classpath:ks-lu.sql") }) 26 @PersistenceFileLocation("classpath:META-INF/lu-persistence.xml") 27 public class CluContextImplTest extends AbstractServiceTest { 28 29 @Client(value = "org.kuali.student.r2.lum.lu.service.impl.CluServiceImpl", additionalContextFile = "classpath:clu-additional-context.xml") 30 private CluService cluService; 31 private CluContextImpl cluContext = new CluContextImpl(); 32 33 private ReqComponentInfo reqComponent1; 34 private ReqComponentInfo reqComponent2; 35 36 37 private void setupReqComponent1() { 38 reqComponent1 = new ReqComponentInfo(); 39 List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>(); 40 ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo(); 41 reqCompField1.setType(ReqComponentFieldTypes.CLU_KEY.getId()); 42 reqCompField1.setValue("CLU-1"); 43 reqCompFieldList.add(reqCompField1); 44 reqComponent1.setReqCompFields(reqCompFieldList); 45 46 ReqCompFieldInfo reqCompField2 = new ReqCompFieldInfo(); 47 reqCompField2.setType(ReqComponentFieldTypes.COURSE_CLU_KEY.getId()); 48 reqCompField2.setValue("CLU-1"); 49 reqCompFieldList.add(reqCompField2); 50 reqComponent1.setReqCompFields(reqCompFieldList); 51 52 ReqCompFieldInfo reqCompField3 = new ReqCompFieldInfo(); 53 reqCompField3.setType(ReqComponentFieldTypes.PROGRAM_CLU_KEY.getId()); 54 reqCompField3.setValue("CLU-1"); 55 reqCompFieldList.add(reqCompField3); 56 reqComponent1.setReqCompFields(reqCompFieldList); 57 58 ReqCompFieldInfo reqCompField4 = new ReqCompFieldInfo(); 59 reqCompField4.setType(ReqComponentFieldTypes.TEST_CLU_KEY.getId()); 60 reqCompField4.setValue("CLU-1"); 61 reqCompFieldList.add(reqCompField4); 62 reqComponent1.setReqCompFields(reqCompFieldList); 63 64 ReqCompFieldInfo reqCompField5 = new ReqCompFieldInfo(); 65 reqCompField5.setType(ReqComponentFieldTypes.CLUSET_KEY.getId()); 66 reqCompField5.setValue("CLUSET-1"); 67 reqCompFieldList.add(reqCompField5); 68 reqComponent1.setReqCompFields(reqCompFieldList); 69 70 ReqCompFieldInfo reqCompField6 = new ReqCompFieldInfo(); 71 reqCompField6.setType(ReqComponentFieldTypes.COURSE_CLUSET_KEY.getId()); 72 reqCompField6.setValue("CLUSET-1"); 73 reqCompFieldList.add(reqCompField6); 74 reqComponent1.setReqCompFields(reqCompFieldList); 75 76 ReqCompFieldInfo reqCompField7 = new ReqCompFieldInfo(); 77 reqCompField7.setType(ReqComponentFieldTypes.PROGRAM_CLUSET_KEY.getId()); 78 reqCompField7.setValue("CLUSET-1"); 79 reqCompFieldList.add(reqCompField7); 80 reqComponent1.setReqCompFields(reqCompFieldList); 81 82 ReqCompFieldInfo reqCompField8 = new ReqCompFieldInfo(); 83 reqCompField8.setType(ReqComponentFieldTypes.TEST_CLUSET_KEY.getId()); 84 reqCompField8.setValue("CLUSET-1"); 85 reqCompFieldList.add(reqCompField8); 86 reqComponent1.setReqCompFields(reqCompFieldList); 87 } 88 89 private void setupReqComponent2() { 90 reqComponent2 = new ReqComponentInfo(); 91 List<ReqCompFieldInfo> reqCompFieldList = new ArrayList<ReqCompFieldInfo>(); 92 ReqCompFieldInfo reqCompField1 = new ReqCompFieldInfo(); 93 reqCompField1.setType(ReqComponentFieldTypes.CLU_KEY.getId()); 94 reqCompField1.setValue(null); 95 reqCompFieldList.add(reqCompField1); 96 reqComponent2.setReqCompFields(reqCompFieldList); 97 98 ReqCompFieldInfo reqCompField2 = new ReqCompFieldInfo(); 99 reqCompField2.setType(ReqComponentFieldTypes.COURSE_CLU_KEY.getId()); 100 reqCompField2.setValue(null); 101 reqCompFieldList.add(reqCompField2); 102 reqComponent2.setReqCompFields(reqCompFieldList); 103 104 ReqCompFieldInfo reqCompField3 = new ReqCompFieldInfo(); 105 reqCompField3.setType(ReqComponentFieldTypes.PROGRAM_CLU_KEY.getId()); 106 reqCompField3.setValue(null); 107 reqCompFieldList.add(reqCompField3); 108 reqComponent2.setReqCompFields(reqCompFieldList); 109 110 ReqCompFieldInfo reqCompField4 = new ReqCompFieldInfo(); 111 reqCompField4.setType(ReqComponentFieldTypes.TEST_CLU_KEY.getId()); 112 reqCompField4.setValue(null); 113 reqCompFieldList.add(reqCompField4); 114 reqComponent2.setReqCompFields(reqCompFieldList); 115 116 ReqCompFieldInfo reqCompField5 = new ReqCompFieldInfo(); 117 reqCompField5.setType(ReqComponentFieldTypes.CLUSET_KEY.getId()); 118 reqCompField5.setValue(null); 119 reqCompFieldList.add(reqCompField5); 120 reqComponent2.setReqCompFields(reqCompFieldList); 121 122 ReqCompFieldInfo reqCompField6 = new ReqCompFieldInfo(); 123 reqCompField6.setType(ReqComponentFieldTypes.COURSE_CLUSET_KEY.getId()); 124 reqCompField6.setValue(null); 125 reqCompFieldList.add(reqCompField6); 126 reqComponent2.setReqCompFields(reqCompFieldList); 127 128 ReqCompFieldInfo reqCompField7 = new ReqCompFieldInfo(); 129 reqCompField7.setType(ReqComponentFieldTypes.PROGRAM_CLUSET_KEY.getId()); 130 reqCompField7.setValue(null); 131 reqCompFieldList.add(reqCompField7); 132 reqComponent2.setReqCompFields(reqCompFieldList); 133 134 ReqCompFieldInfo reqCompField8 = new ReqCompFieldInfo(); 135 reqCompField8.setType(ReqComponentFieldTypes.TEST_CLUSET_KEY.getId()); 136 reqCompField8.setValue(null); 137 reqCompFieldList.add(reqCompField8); 138 reqComponent2.setReqCompFields(reqCompFieldList); 139 } 140 141 @Before 142 public void beforeMethod() { 143 cluContext.setCluService(cluService); 144 setupReqComponent1(); 145 setupReqComponent2(); 146 } 147 148 @Test 149 public void testCreateContextMap_Clu() throws OperationFailedException { 150 Map<String, Object> contextMap = cluContext.createContextMap(reqComponent1, ContextUtils.getContextInfo()); 151 CluInfo clu = (CluInfo) contextMap.get(CluContextImpl.CLU_TOKEN); 152 CluInfo courseClu = (CluInfo) contextMap.get(CluContextImpl.COURSE_CLU_TOKEN); 153 CluInfo programClu = (CluInfo) contextMap.get(CluContextImpl.PROGRAM_CLU_TOKEN); 154 CluInfo testClu = (CluInfo) contextMap.get(CluContextImpl.TEST_CLU_TOKEN); 155 156 Assert.assertNotNull(contextMap); 157 Assert.assertEquals("CLU-1", clu.getId()); 158 Assert.assertEquals("CLU-1", courseClu.getId()); 159 Assert.assertEquals("CLU-1", programClu.getId()); 160 Assert.assertEquals("CLU-1", testClu.getId()); 161 162 Assert.assertEquals("kuali.lu.type.CreditCourse", clu.getTypeKey()); 163 Assert.assertEquals("Chem 123", clu.getOfficialIdentifier().getShortName()); 164 Assert.assertEquals("Chemistry 123", clu.getOfficialIdentifier().getLongName()); 165 } 166 167 @Test 168 public void testCreateContextMap_CluSet() throws OperationFailedException { 169 Map<String, Object> contextMap = cluContext.createContextMap(reqComponent1, ContextUtils.getContextInfo()); 170 NLCluSet cluSet = (NLCluSet) contextMap.get(CluContextImpl.CLU_SET_TOKEN); 171 NLCluSet courseCluSet = (NLCluSet) contextMap.get(CluContextImpl.COURSE_CLU_SET_TOKEN); 172 NLCluSet programCluSet = (NLCluSet) contextMap.get(CluContextImpl.PROGRAM_CLU_SET_TOKEN); 173 NLCluSet testCluSet = (NLCluSet) contextMap.get(CluContextImpl.TEST_CLU_SET_TOKEN); 174 175 176 Assert.assertNotNull(contextMap); 177 Assert.assertEquals("CLUSET-1", cluSet.getCluSetId()); 178 Assert.assertEquals("CLUSET-1", courseCluSet.getCluSetId()); 179 Assert.assertEquals("CLUSET-1", programCluSet.getCluSetId()); 180 Assert.assertEquals("CLUSET-1", testCluSet.getCluSetId()); 181 182 Assert.assertEquals("(CHEM456, CHEM456)", cluSet.getCluSetAsCode()); 183 Assert.assertEquals("(Chem 456, Chem 456)", cluSet.getCluSetAsShortName()); 184 Assert.assertEquals("(Chemistry 456, Chemistry 456)", cluSet.getCluSetAsLongName()); 185 186 Assert.assertEquals("CHEM456", cluSet.getCluAsCode(0)); 187 Assert.assertEquals("Chem 456", cluSet.getCluAsShortName(0)); 188 Assert.assertEquals("CHEM456", cluSet.getCluAsCode(1)); 189 Assert.assertEquals("Chem 456", cluSet.getCluAsShortName(1)); 190 } 191 192 @Test 193 public void testCreateContextMap_NullTokenValues() throws OperationFailedException { 194 Map<String, Object> contextMap = cluContext.createContextMap(reqComponent2, ContextUtils.getContextInfo()); 195 CluInfo clu = (CluInfo) contextMap.get(CluContextImpl.CLU_TOKEN); 196 CluInfo courseClu = (CluInfo) contextMap.get(CluContextImpl.COURSE_CLU_TOKEN); 197 CluInfo programClu = (CluInfo) contextMap.get(CluContextImpl.PROGRAM_CLU_TOKEN); 198 CluInfo testClu = (CluInfo) contextMap.get(CluContextImpl.TEST_CLU_TOKEN); 199 NLCluSet cluSet = (NLCluSet) contextMap.get(CluContextImpl.CLU_SET_TOKEN); 200 NLCluSet courseCluSet = (NLCluSet) contextMap.get(CluContextImpl.COURSE_CLU_SET_TOKEN); 201 NLCluSet programCluSet = (NLCluSet) contextMap.get(CluContextImpl.PROGRAM_CLU_SET_TOKEN); 202 NLCluSet testCluSet = (NLCluSet) contextMap.get(CluContextImpl.TEST_CLU_SET_TOKEN); 203 204 Assert.assertNotNull(contextMap); 205 Assert.assertEquals(null, clu); 206 Assert.assertEquals(null, courseClu); 207 Assert.assertEquals(null, programClu); 208 Assert.assertEquals(null, testClu); 209 Assert.assertEquals(null, cluSet); 210 Assert.assertEquals(null, courseCluSet); 211 Assert.assertEquals(null, programCluSet); 212 Assert.assertEquals(null, testCluSet); 213 214 } 215 216 }