View Javadoc

1   /**
2    * Copyright 2012 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   *
15   * Created by mharmath on 12/20/12
16   */
17  package org.kuali.student.lum.lrc.service.util;
18  
19  import org.kuali.student.common.test.mock.data.AbstractMockServicesAwareDataLoader;
20  import org.kuali.student.r2.common.dto.ContextInfo;
21  import org.kuali.student.r2.common.exceptions.DoesNotExistException;
22  import org.kuali.student.r2.common.util.RichTextHelper;
23  import org.kuali.student.r2.lum.lrc.dto.ResultValueInfo;
24  import org.kuali.student.r2.lum.lrc.dto.ResultValueRangeInfo;
25  import org.kuali.student.r2.lum.lrc.dto.ResultValuesGroupInfo;
26  import org.kuali.student.r2.lum.lrc.infc.ResultValueRange;
27  import org.kuali.student.r2.lum.lrc.service.LRCService;
28  
29  import java.text.DateFormat;
30  import java.text.ParseException;
31  import java.text.SimpleDateFormat;
32  import java.util.Date;
33  
34  /**
35   * This class provides mock data to test the LrcService
36   *
37   * @author Kuali Student Team
38   */
39  public class MockLrcTestDataLoader  {
40  
41      private LRCService lrcService;
42      private static String principalId = MockLrcTestDataLoader.class.getSimpleName();
43  
44      public LRCService getLrcService() {
45          return lrcService;
46      }
47  
48      public void setLrcService(LRCService lrcService) {
49          this.lrcService = lrcService;
50      }
51  
52      public MockLrcTestDataLoader(LRCService lrcService) {
53          this.lrcService = lrcService;
54      }
55  
56      public void loadData() {
57          loadResultValueInfo("kuali.result.value.grade.completed.c", "Completed", "Completed", "kuali.result.scale.grade.completed", "2");
58          loadResultValueInfo("kuali.result.value.grade.completed.ip", "In-Progress", "In-Progress", "kuali.result.scale.grade.completed", "1");
59          loadResultValueInfo("kuali.result.value.grade.completed.nc", "Not-Completed", "Not-Completed", "kuali.result.scale.grade.completed", "0");
60  
61          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.a+", "A+", "A+", "kuali.result.scale.grade.letter.plus.minus", "12");
62          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.a", "A", "A", "kuali.result.scale.grade.letter.plus.minus", "11");
63          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.a-", "A-", "A-", "kuali.result.scale.grade.letter.plus.minus", "10");
64          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.b+", "B+", "B+", "kuali.result.scale.grade.letter.plus.minus", "9");
65          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.b", "B", "B", "kuali.result.scale.grade.letter.plus.minus", "8");
66          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.b-", "B-", "B-", "kuali.result.scale.grade.letter.plus.minus", "7");
67          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.c+", "C+", "C+", "kuali.result.scale.grade.letter.plus.minus", "6");
68          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.c", "C", "C", "kuali.result.scale.grade.letter.plus.minus", "5");
69          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.c-", "C-", "C-", "kuali.result.scale.grade.letter.plus.minus", "4");
70          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.d+", "D+", "D+", "kuali.result.scale.grade.letter.plus.minus", "3");
71          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.d", "D", "D", "kuali.result.scale.grade.letter.plus.minus", "2");
72          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.d-", "D-", "D-", "kuali.result.scale.grade.letter.plus.minus", "1");
73          loadResultValueInfo("kuali.result.value.grade.letter.plus.minus.f", "F", "F", "kuali.result.scale.grade.letter.plus.minus", "0");
74  
75          loadResultValuesGroupInfo("kuali.creditType.credit.degree.1.0", "kuali.result.values.group.type.fixed", "kuali.result.values.group.state.approved", "1 Credit", "1 Academic Credit", "kuali.result.scale.credit.degree", "1", "1");
76          loadResultValuesGroupInfo("kuali.creditType.credit.degree.2.0", "kuali.result.values.group.type.fixed", "kuali.result.values.group.state.approved", "1 Credit", "1 Academic Credit", "kuali.result.scale.credit.degree", "1", "1");
77      }
78  
79      public void loadResultValuesGroupInfo(String id, String type, String state, String name, String description, String resultScaleKey, String maxValue, String minValue) {
80  
81          ResultValuesGroupInfo info = new ResultValuesGroupInfo();
82          ResultValueRangeInfo resultValueRange = new ResultValueRangeInfo();
83          ContextInfo context = new ContextInfo();
84          context.setPrincipalId(principalId);
85          context.setCurrentDate(new Date());
86          info.setKey(id);
87          info.setTypeKey(type);// use id for code
88          info.setStateKey(state);
89          info.setName(name);
90          info.setDescr(new RichTextHelper().fromPlain(description));
91          info.setResultScaleKey(resultScaleKey);
92          resultValueRange.setMaxValue(maxValue);
93          resultValueRange.setMinValue(minValue);
94          info.setResultValueRange(resultValueRange);
95          boolean dataExists = true;
96          try {
97              lrcService.deleteResultValuesGroup(id,context);
98  //            lrcService.getResultValuesGroup(id,context);
99          } catch (Exception e) {
100             dataExists = true;
101         }
102         try {
103             if (dataExists) {
104                 lrcService.createResultValuesGroup(resultScaleKey, id, info, context);
105             }
106         } catch (Exception e) {
107             throw new RuntimeException("error assigning to services: "+e);
108         }
109     }
110 
111     public void loadResultValueInfo(String id, String name, String description, String resultScaleKey, String numericValue){
112         loadResultValueInfo(id, "kuali.result.value.type.value", "kuali.result.value.state.approved", name, description, resultScaleKey, numericValue);
113     }
114 
115     public void loadResultValueInfo(String id, String type, String state, String name, String description, String resultScaleKey, String numericValue) {
116         ContextInfo context = new ContextInfo();
117         context.setPrincipalId(principalId);
118         context.setCurrentDate(new Date());
119 
120         try {
121             try {
122                 lrcService.getResultValue(id, context);
123             } catch (DoesNotExistException dne) {
124 
125                 ResultValueInfo info = new ResultValueInfo();
126                 info.setKey(id);
127                 info.setTypeKey(type);// use id for code
128                 info.setStateKey(state);
129                 info.setName(name);
130                 info.setDescr(new RichTextHelper().fromPlain(description));
131                 info.setResultScaleKey(resultScaleKey);
132                 info.setNumericValue(numericValue);
133 
134                 lrcService.createResultValue(resultScaleKey, id, info, context);
135 
136             }
137 
138         } catch (Exception e) {
139             throw new RuntimeException("error assigning to services: "+e);
140         }
141     }
142 
143 }