44
55use Carbon \Carbon ;
66use Illuminate \Foundation \Testing \RefreshDatabase ;
7+ use vicgonvt \LaraPress \Facades \LaraPress ;
8+ use vicgonvt \LaraPress \Field \FieldContract ;
79use vicgonvt \LaraPress \PressFileParser ;
810use vicgonvt \LaraPress \Series ;
911
@@ -138,8 +140,42 @@ public function the_body_gets_markdown_parsed()
138140 $ this ->assertEquals ('<h1>Title Here</h1> ' , $ data ['body ' ]);
139141 }
140142
143+ /** @test */
144+ public function it_can_use_a_users_class ()
145+ {
146+ LaraPress::fields (['\vicgonvt\LaraPress\Tests\Other ' ]);
147+
148+ $ data = (new PressFileParser ("--- \nOther: A Cool Title--- \n#Title Here " ))->getData ();
149+ $ this ->assertEquals ('A Cool Title ' , $ data ['other ' ]);
150+ }
151+
152+ /** @test */
153+ public function it_fulfills_the_full_class_name ()
154+ {
155+ LaraPress::fields (['\vicgonvt\LaraPress\Tests\TitleTitle ' ]);
156+
157+ $ data = (new PressFileParser ("--- \nTitle: A Cool Title--- \n#Title Here " ))->getData ();
158+ $ this ->assertEquals ('A Cool Title ' , $ data ['title ' ]);
159+ }
160+
141161 private function getSampleMarkdownParser ()
142162 {
143163 return (new PressFileParser (__DIR__ . '/../stubs/MarkFile1.md ' ));
144164 }
165+ }
166+
167+ class Other extends FieldContract
168+ {
169+ public static function process ($ fieldType , $ fieldValue , $ fields )
170+ {
171+ return ['other ' => $ fieldValue ];
172+ }
173+ }
174+
175+ class TitleTitle extends FieldContract
176+ {
177+ public static function process ($ fieldType , $ fieldValue , $ fields )
178+ {
179+ return ['titletitle ' => $ fieldValue ];
180+ }
145181}
0 commit comments