30 : void
31 {
32 $defaultPlaceholderValues = $this->getMockBuilder(ilDefaultPlaceholderValues::class)
33 ->disableOriginalConstructor()
34 ->getMock();
35
36 $language = $this->getMockBuilder(ilLanguage::class)
37 ->disableOriginalConstructor()
38 ->getMock();
39
40 $language->method('txt')
41 ->willReturnCallback(function ($variableValue) {
42 if ($variableValue === 'lang_sep_decimal') {
43 return ',';
44 } elseif ($variableValue === 'lang_sep_thousand') {
45 return '.';
46 }
47
48 return 'Some Translation: ' . $variableValue;
49 });
50
51 $language->expects($this->once())
52 ->method('loadLanguageModule');
53
54 $dateHelper = $this->getMockBuilder(ilCertificateDateHelper::class)
55 ->getMock();
56
57 $objectMock = $this->getMockBuilder(ilObjSAHSLearningModule::class)
58 ->disableOriginalConstructor()
59 ->onlyMethods(['getPointsInPercent', 'getMaxPoints', 'getTitle', 'getId'])
60 ->getMock();
61
62 $objectMock->method('getPointsInPercent')
63 ->willReturn(100.0);
64
65 $objectMock->method('getMaxPoints')
66 ->willReturn(100.0);
67
68 $objectMock->method('getTitle')
69 ->willReturn('SomeTitle');
70
71 $objectMock->method('getId')
72 ->willReturn(500);
73
74 $user_object = $this->getMockBuilder(ilObjUser::class)
75 ->disableOriginalConstructor()
76 ->getMock();
77
78 $objectHelper = $this->getMockBuilder(ilCertificateObjectHelper::class)
79 ->getMock();
80 $objectHelper->method('getInstanceByObjId')
81 ->willReturnMap(
82 [
83 [200, $objectMock],
84 [10, $user_object]
85 ]
86 );
87
88 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
89 ->getMock();
90
91 $utilHelper->method('prepareFormOutput')
92 ->willReturn('Formatted String');
93
94 $objectLPHelper = $this->getMockBuilder(ilCertificateObjectLPHelper::class)
95 ->getMock();
96
97 $lpCollection = $this->getMockBuilder(ilLPCollectionOfSCOs::class)
98 ->disableOriginalConstructor()
99 ->onlyMethods(['getPossibleItems', 'getScoresForUserAndCP_Node_Id', 'isAssignedEntry'])
100 ->getMock();
101
102 $lpCollection->method('getPossibleItems')
103 ->willReturn([100 => ['title' => 'Some Title']]);
104
105 $lpCollection->method('getScoresForUserAndCP_Node_Id')
106 ->willReturn(
107 [
108 'raw' => 100,
109 'max' => 300,
110 'scaled' => 2
111 ]
112 );
113
114 $lpCollection->method('isAssignedEntry')
115 ->willReturn(true);
116
117 $olp = $this->getMockBuilder(ilObjectLP::class)
118 ->disableOriginalConstructor()
119 ->onlyMethods(['getCollectionInstance'])
120 ->getMock();
121
122 $olp->method('getCollectionInstance')
123 ->willReturn($lpCollection);
124
125 $objectLPHelper->method('getInstance')
126 ->willReturn($olp);
127
128 $lpStatusHelper = $this->getMockBuilder(ilCertificateLPStatusHelper::class)
129 ->getMock();
130
131 $lpStatusHelper->method('lookupStatusChanged')
132 ->willReturn('2018-12-01 13:00:11');
133
135 $defaultPlaceholderValues,
136 $language,
137 $dateHelper,
138 $objectHelper,
139 $utilHelper,
140 $objectLPHelper,
141 $lpStatusHelper
142 );
143
144 $result = $scormPlaceholderValues->getPlaceholderValues(10, 200);
145
146 $this->assertEquals(
147 [
148 'SCORM_TITLE' => 'Formatted String',
149 'SCORM_POINTS' => '100,0 %',
150 'SCORM_POINTS_MAX' => 100,
151 'SCO_T_0' => 'Some Title',
152 'SCO_P_0' => '100,0',
153 'SCO_PM_0' => '300,0',
154 'SCO_PP_0' => '200,0 %',
155 'DATE_COMPLETED' => '',
156 'DATETIME_COMPLETED' => ''
157 ],
158 $result
159 );
160 }