@@ -31,6 +31,38 @@ class PrePaidSummitRegistrationDiscountCodeAuditLogFormatterTest extends TestCas
3131 private const MOCK_ID = 1 ;
3232 private const SUMMIT_NAME = 'Test Summit ' ;
3333
34+ private const DISCOUNT_CODE_RATE_EARLY = 'EARLY2024 ' ;
35+ private const DISCOUNT_CODE_AMOUNT = 'DISCOUNT25 ' ;
36+ private const DISCOUNT_CODE_UPDATE = 'SUMMER24 ' ;
37+ private const DISCOUNT_CODE_DELETE = 'VIP2024 ' ;
38+ private const DISCOUNT_CODE_EXPIRED = 'EXPIRED ' ;
39+
40+ private const RATE_EARLY = 15 ;
41+ private const RATE_UPDATE_OLD = 15 ;
42+ private const RATE_UPDATE_NEW = 20 ;
43+ private const RATE_HIGH = 50 ;
44+ private const RATE_EXPIRED = 10 ;
45+
46+ private const AMOUNT_DISCOUNT = 25.00 ;
47+ private const AMOUNT_ZERO = 0 ;
48+
49+ private const QUANTITY_EARLY = 50 ;
50+ private const QUANTITY_AMOUNT = 100 ;
51+ private const QUANTITY_UPDATE_OLD = 100 ;
52+ private const QUANTITY_UPDATE_NEW = 75 ;
53+ private const QUANTITY_HIGH = 10 ;
54+ private const QUANTITY_NONE = 0 ;
55+
56+ private const EVENT_CREATED = 'created ' ;
57+ private const EVENT_UPDATED = 'updated ' ;
58+ private const EVENT_DELETED = 'deleted ' ;
59+ private const EVENT_CURRENT = 'current: ' ;
60+
61+ private const EXPECTED_RATE_FORMAT = 'rate: %.2f%% ' ;
62+ private const EXPECTED_AMOUNT_FORMAT = 'amount: $%.2f ' ;
63+ private const EXPECTED_QUANTITY_FORMAT = 'quantity: %d ' ;
64+ private const EXPECTED_ID_FORMAT = '(%d) ' ;
65+
3466 private PrePaidSummitRegistrationDiscountCodeAuditLogFormatter $ formatter_creation ;
3567 private PrePaidSummitRegistrationDiscountCodeAuditLogFormatter $ formatter_update ;
3668 private PrePaidSummitRegistrationDiscountCodeAuditLogFormatter $ formatter_deletion ;
@@ -60,71 +92,106 @@ protected function tearDown(): void
6092
6193 public function testFormatCreationEventWithRate (): void
6294 {
63- $ code = $ this ->createMockCode ('EARLY2024 ' , 0.15 , 0 , 50 , true , 'Alice ' , 'Brown ' );
95+ $ code = $ this ->createMockCode (
96+ self ::DISCOUNT_CODE_RATE_EARLY ,
97+ self ::RATE_EARLY ,
98+ self ::AMOUNT_ZERO ,
99+ self ::QUANTITY_EARLY
100+ );
64101
65102 $ this ->formatter_creation ->setContext ($ this ->audit_context );
66103 $ result = $ this ->formatter_creation ->format ($ code , []);
67104
68105 $ this ->assertNotNull ($ result );
69- $ this ->assertStringContainsString ("EARLY2024 " , $ result );
70- $ this ->assertStringContainsString ("(1) " , $ result );
71- $ this ->assertStringContainsString ("created " , $ result );
72- $ this ->assertStringContainsString ("Test Summit " , $ result );
106+ $ this ->assertStringContainsString (self ::DISCOUNT_CODE_RATE_EARLY , $ result );
107+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_ID_FORMAT , self ::MOCK_ID ), $ result );
108+ $ this ->assertStringContainsString (self ::EVENT_CREATED , $ result );
109+ $ this ->assertStringContainsString (self ::SUMMIT_NAME , $ result );
110+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_RATE_FORMAT , self ::RATE_EARLY ), $ result );
111+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_QUANTITY_FORMAT , self ::QUANTITY_EARLY ), $ result );
73112 }
74113
75114 public function testFormatCreationEventWithAmount (): void
76115 {
77- $ code = $ this ->createMockCode ('DISCOUNT25 ' , 0 , 25.00 , 100 , true , 'Bob ' , 'Davis ' );
116+ $ code = $ this ->createMockCode (
117+ self ::DISCOUNT_CODE_AMOUNT ,
118+ self ::AMOUNT_ZERO ,
119+ self ::AMOUNT_DISCOUNT ,
120+ self ::QUANTITY_AMOUNT
121+ );
78122
79123 $ this ->formatter_creation ->setContext ($ this ->audit_context );
80124 $ result = $ this ->formatter_creation ->format ($ code , []);
81125
82126 $ this ->assertNotNull ($ result );
83- $ this ->assertStringContainsString ("DISCOUNT25 " , $ result );
84- $ this ->assertStringContainsString ("(1) " , $ result );
85- $ this ->assertStringContainsString ("created " , $ result );
127+ $ this ->assertStringContainsString (self ::DISCOUNT_CODE_AMOUNT , $ result );
128+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_ID_FORMAT , self ::MOCK_ID ), $ result );
129+ $ this ->assertStringContainsString (self ::EVENT_CREATED , $ result );
130+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_AMOUNT_FORMAT , self ::AMOUNT_DISCOUNT ), $ result );
131+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_QUANTITY_FORMAT , self ::QUANTITY_AMOUNT ), $ result );
86132 }
87133
88134 public function testFormatUpdateEvent (): void
89135 {
90- $ code = $ this ->createMockCode ('SUMMER24 ' , 0.20 , 0 , 75 , true , 'Carol ' , 'Evans ' );
136+ $ code = $ this ->createMockCode (
137+ self ::DISCOUNT_CODE_UPDATE ,
138+ self ::RATE_UPDATE_NEW ,
139+ self ::AMOUNT_ZERO ,
140+ self ::QUANTITY_UPDATE_NEW
141+ );
91142
92143 $ this ->formatter_update ->setContext ($ this ->audit_context );
93144 $ result = $ this ->formatter_update ->format ($ code , [
94- 'rate ' => [0.15 , 0.20 ],
95- 'quantity_available ' => [100 , 75 ]
145+ 'rate ' => [self :: RATE_UPDATE_OLD , self :: RATE_UPDATE_NEW ],
146+ 'quantity_available ' => [self :: QUANTITY_UPDATE_OLD , self :: QUANTITY_UPDATE_NEW ]
96147 ]);
97148
98149 $ this ->assertNotNull ($ result );
99- $ this ->assertStringContainsString ("SUMMER24 " , $ result );
100- $ this ->assertStringContainsString ("(1) " , $ result );
101- $ this ->assertStringContainsString ("updated " , $ result );
150+ $ this ->assertStringContainsString (self ::DISCOUNT_CODE_UPDATE , $ result );
151+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_ID_FORMAT , self ::MOCK_ID ), $ result );
152+ $ this ->assertStringContainsString (self ::EVENT_UPDATED , $ result );
153+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_RATE_FORMAT , self ::RATE_UPDATE_NEW ), $ result );
154+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_QUANTITY_FORMAT , self ::QUANTITY_UPDATE_NEW ), $ result );
155+ $ this ->assertStringContainsString (self ::EVENT_CURRENT , $ result );
102156 }
103157
104158 public function testFormatDeletionEvent (): void
105159 {
106- $ code = $ this ->createMockCode ('VIP2024 ' , 0.50 , 0 , 10 , false , 'David ' , 'Frank ' );
160+ $ code = $ this ->createMockCode (
161+ self ::DISCOUNT_CODE_DELETE ,
162+ self ::RATE_HIGH ,
163+ self ::AMOUNT_ZERO ,
164+ self ::QUANTITY_HIGH
165+ );
107166
108167 $ this ->formatter_deletion ->setContext ($ this ->audit_context );
109168 $ result = $ this ->formatter_deletion ->format ($ code , []);
110169
111170 $ this ->assertNotNull ($ result );
112- $ this ->assertStringContainsString ("VIP2024 " , $ result );
113- $ this ->assertStringContainsString ("(1) " , $ result );
114- $ this ->assertStringContainsString ("deleted " , $ result );
171+ $ this ->assertStringContainsString (self ::DISCOUNT_CODE_DELETE , $ result );
172+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_ID_FORMAT , self ::MOCK_ID ), $ result );
173+ $ this ->assertStringContainsString (self ::EVENT_DELETED , $ result );
174+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_RATE_FORMAT , self ::RATE_HIGH ), $ result );
175+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_QUANTITY_FORMAT , self ::QUANTITY_HIGH ), $ result );
115176 }
116177
117178 public function testFormatInactiveCode (): void
118179 {
119- $ code = $ this ->createMockCode ('EXPIRED ' , 0.10 , 0 , 0 , false , 'Eve ' , 'Green ' );
180+ $ code = $ this ->createMockCode (
181+ self ::DISCOUNT_CODE_EXPIRED ,
182+ self ::RATE_EXPIRED ,
183+ self ::AMOUNT_ZERO ,
184+ self ::QUANTITY_NONE
185+ );
120186
121187 $ this ->formatter_creation ->setContext ($ this ->audit_context );
122188 $ result = $ this ->formatter_creation ->format ($ code , []);
123189
124190 $ this ->assertNotNull ($ result );
125- $ this ->assertStringContainsString ("EXPIRED " , $ result );
126- $ this ->assertStringContainsString ("(1) " , $ result );
127- $ this ->assertStringContainsString ("created " , $ result );
191+ $ this ->assertStringContainsString (self ::DISCOUNT_CODE_EXPIRED , $ result );
192+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_ID_FORMAT , self ::MOCK_ID ), $ result );
193+ $ this ->assertStringContainsString (self ::EVENT_CREATED , $ result );
194+ $ this ->assertStringContainsString (sprintf (self ::EXPECTED_RATE_FORMAT , self ::RATE_EXPIRED ), $ result );
128195 }
129196
130197 public function testFormatInvalidSubject (): void
@@ -140,23 +207,14 @@ private function createMockCode(
140207 string $ code ,
141208 float $ rate ,
142209 float $ amount ,
143- int $ quantity_available ,
144- bool $ is_active ,
145- string $ creator_first ,
146- string $ creator_last
210+ int $ quantity_available
147211 ): object {
148212 $ mock = Mockery::mock (PrePaidSummitRegistrationDiscountCode::class);
149213 $ mock ->shouldReceive ('getCode ' )->andReturn ($ code );
150214 $ mock ->shouldReceive ('getId ' )->andReturn (self ::MOCK_ID );
151215 $ mock ->shouldReceive ('getRate ' )->andReturn ($ rate );
152216 $ mock ->shouldReceive ('getAmount ' )->andReturn ($ amount );
153217 $ mock ->shouldReceive ('getQuantityAvailable ' )->andReturn ($ quantity_available );
154- $ mock ->shouldReceive ('isLive ' )->andReturn ($ is_active );
155-
156- $ creator = Mockery::mock (\models \main \Member::class);
157- $ creator ->shouldReceive ('getFirstName ' )->andReturn ($ creator_first );
158- $ creator ->shouldReceive ('getLastName ' )->andReturn ($ creator_last );
159- $ mock ->shouldReceive ('getCreatedBy ' )->andReturn ($ creator );
160218
161219 $ summit = Mockery::mock (\models \summit \Summit::class);
162220 $ summit ->shouldReceive ('getName ' )->andReturn (self ::SUMMIT_NAME );
0 commit comments