11package pl .commit .craft .template ;
22
3- import ch .qos .logback .classic .spi .ILoggingEvent ;
4- import ch .qos .logback .core .read .ListAppender ;
5- import org .junit .jupiter .api .BeforeEach ;
63import org .junit .jupiter .api .Test ;
7- import org .mockito .InjectMocks ;
8- import org .slf4j .Logger ;
9- import org .slf4j .LoggerFactory ;
104import java .util .Map ;
115
126import static org .junit .jupiter .api .Assertions .*;
137
148class CommitDedicatedTemplateValidatorTest {
15- private static final Logger log = LoggerFactory .getLogger (CommitDedicatedTemplateValidator .class );
169
17- @ InjectMocks
18- private CommitDedicatedTemplateValidator validator ;
19-
20- private ListAppender <ILoggingEvent > listAppender ;
10+ @ Test
11+ void shouldValidatePatternAndModelScope_Success () {
12+ Map <String , Object > model = Map .of (
13+ "scope" , "core" ,
14+ "message" , "message"
15+ );
2116
17+ CommitCraftTemplate validTemplate = new CommitCraftTemplate ("feat-{scope}-{message}" , "Standard commit" , "feat-{scope}-{message}" , model );
2218
23- @ BeforeEach
24- void setUp () {
25- listAppender = new ListAppender <>();
26- listAppender .start ();
19+ ValidationResult result = CommitDedicatedTemplateValidator .validatePatternAndModelScopeDetailed (validTemplate );
2720
28- ((ch .qos .logback .classic .Logger ) log ).addAppender (listAppender );
21+ assertTrue (result .isValid ());
22+ assertEquals ("Template is valid" , result .getErrorMessage ());
2923 }
3024
3125 @ Test
32- void testValidatePatternAndModelScope_success () {
26+ void shouldValidatePatternAndModelScope_MissingModelKey () {
3327 Map <String , Object > model = Map .of (
3428 "type" , "feat" ,
35- "scope " , "core " ,
36- "message " , "message "
29+ "message " , "message " ,
30+ "scope " , "core "
3731 );
3832
39- CommitCraftTemplate validTemplate = new CommitCraftTemplate ("feat-{scope}" , "Standard commit" , "feat-{scope}" , model );
33+ CommitCraftTemplate invalidTemplate = new CommitCraftTemplate ("feat-{scope}-{message} " , "Invalid commit" , "feat-{scope}-{message }" , model );
4034
41- boolean result = CommitDedicatedTemplateValidator .validatePatternAndModelScope ( validTemplate );
35+ ValidationResult result = CommitDedicatedTemplateValidator .validatePatternAndModelScopeDetailed ( invalidTemplate );
4236
43- assertFalse (result );
44- assertFalse ( listAppender . list . stream (). anyMatch ( event -> event . getMessage (). contains ( "Pattern matches the model keys." ) ));
37+ assertFalse (result . isValid () );
38+ assertEquals ( "Invalid template format: Keys missing in pattern: [type]" , result . getErrorMessage ( ));
4539 }
4640
4741 @ Test
48- void testValidatePatternAndModelScope_missingModelKey () {
42+ void shouldValidatePatternAndModelScope_ExtraModelKey () {
4943 Map <String , Object > model = Map .of (
5044 "type" , "feat" ,
51- "scope" , "core"
45+ "scope" , "core" ,
46+ "extraKey" , "extra"
5247 );
5348
54- CommitCraftTemplate invalidTemplate = new CommitCraftTemplate ("feat-{scope}-{extraKey} " , "Invalid commit" , "feat-{scope}-{extraKey }" , model );
49+ CommitCraftTemplate invalidTemplate = new CommitCraftTemplate ("feat-{scope}" , "Invalid commit" , "feat-{scope}" , model );
5550
56- boolean result = CommitDedicatedTemplateValidator .validatePatternAndModelScope (invalidTemplate );
51+ ValidationResult result = CommitDedicatedTemplateValidator .validatePatternAndModelScopeDetailed (invalidTemplate );
5752
58- assertFalse (result );
59- assertFalse ( listAppender . list . stream (). anyMatch ( event -> event . getMessage (). contains ( "Pattern contains an extra key not in the model: extraKey" ) ));
53+ assertFalse (result . isValid () );
54+ assertEquals ( "Invalid template format: Keys missing in pattern: [ extraKey, type]" , result . getErrorMessage ( ));
6055 }
6156
6257 @ Test
63- void testValidatePatternAndModelScope_extraModelKey () {
58+ void shouldValidatePatternAndModelScope_BothMissingAndExtraKeys () {
6459 Map <String , Object > model = Map .of (
6560 "type" , "feat" ,
6661 "scope" , "core" ,
67- "message " , "extra"
62+ "extraKey " , "extra"
6863 );
6964
70- CommitCraftTemplate invalidTemplate = new CommitCraftTemplate ("feat-{scope}" , "Invalid commit" , "feat-{scope}" , model );
65+ CommitCraftTemplate invalidTemplate = new CommitCraftTemplate ("feat-{scope}-{message} " , "Invalid commit" , "feat-{scope}-{message }" , model );
7166
72- boolean result = CommitDedicatedTemplateValidator .validatePatternAndModelScope (invalidTemplate );
67+ ValidationResult result = CommitDedicatedTemplateValidator .validatePatternAndModelScopeDetailed (invalidTemplate );
7368
74- assertFalse (result );
75- assertFalse ( listAppender . list . stream (). anyMatch ( event -> event . getMessage (). contains ( "Pattern is missing key: message" ) ));
69+ assertFalse (result . isValid () );
70+ assertEquals ( "Invalid template format: Keys missing in pattern: [extraKey, type]; Missing keys in model: [ message]" , result . getErrorMessage ( ));
7671 }
7772}
0 commit comments