@@ -60,5 +60,44 @@ public async void GetCommitsByRefName()
6060 }
6161
6262 }
63+
64+ [ Fact ]
65+ public async void GetDiffsForCommit ( )
66+ {
67+ string gitlabServer = "http://fake-gitlab.com/" ;
68+ string projectId = "id" ;
69+ string sha = "6104942438c14ec7bd21c6cd5bd995272b3faff6" ;
70+ string url = $ "/projects/id/repository/commits/{ sha } /diff?per_page=100&page=1";
71+
72+ var handler = A . Fake < MockHandler > ( opt => opt . CallsBaseMethods ( ) ) ;
73+ A . CallTo ( ( ) => handler . SendAsync ( HttpMethod . Get , url ) )
74+ . ReturnsLazily ( ( ) => HttpResponseMessageProducer . Success (
75+ $ "[ {{ \" diff\" : \" diff1\" , \" new_path\" : \" new_path1\" , \" old_path\" : \" old_path1\" , \" a_mode\" : \" a_mode1\" , \" b_mode\" : \" b_mode1\" , \" new_file\" : \" true\" , \" renamed_file\" : \" false\" , \" deleted_file\" : \" false\" }},\n {{\" diff\" : \" diff2\" , \" new_path\" : \" new_path2\" , \" old_path\" : \" old_path2\" , \" a_mode\" : \" a_mode2\" , \" b_mode\" : \" b_mode2\" , \" new_file\" : \" false\" , \" renamed_file\" : \" true\" , \" deleted_file\" : \" true\" }}]") ) ;
76+ using ( var client = new HttpClient ( handler ) { BaseAddress = new Uri ( gitlabServer ) } )
77+ {
78+ var gitlabHttpFacade = new GitLabHttpFacade ( new RequestsJsonSerializer ( ) , client ) ;
79+ var commitsClient = new CommitsClient ( gitlabHttpFacade , new CommitQueryBuilder ( ) , new CommitRefsQueryBuilder ( ) ) ;
80+
81+ var diffsFromClient = await commitsClient . GetDiffsAsync ( projectId , sha ) ;
82+ diffsFromClient [ 0 ] . DiffText . Should ( ) . BeEquivalentTo ( "diff1" ) ;
83+ diffsFromClient [ 0 ] . NewPath . Should ( ) . BeEquivalentTo ( "new_path1" ) ;
84+ diffsFromClient [ 0 ] . OldPath . Should ( ) . BeEquivalentTo ( "old_path1" ) ;
85+ diffsFromClient [ 0 ] . AMode . Should ( ) . BeEquivalentTo ( "a_mode1" ) ;
86+ diffsFromClient [ 0 ] . BMode . Should ( ) . BeEquivalentTo ( "b_mode1" ) ;
87+ diffsFromClient [ 0 ] . IsNewFile . Should ( ) . BeTrue ( ) ;
88+ diffsFromClient [ 0 ] . IsRenamedFile . Should ( ) . BeFalse ( ) ;
89+ diffsFromClient [ 0 ] . IsDeletedFile . Should ( ) . BeFalse ( ) ;
90+
91+ diffsFromClient [ 1 ] . DiffText . Should ( ) . BeEquivalentTo ( "diff2" ) ;
92+ diffsFromClient [ 1 ] . NewPath . Should ( ) . BeEquivalentTo ( "new_path2" ) ;
93+ diffsFromClient [ 1 ] . OldPath . Should ( ) . BeEquivalentTo ( "old_path2" ) ;
94+ diffsFromClient [ 1 ] . AMode . Should ( ) . BeEquivalentTo ( "a_mode2" ) ;
95+ diffsFromClient [ 1 ] . BMode . Should ( ) . BeEquivalentTo ( "b_mode2" ) ;
96+ diffsFromClient [ 1 ] . IsNewFile . Should ( ) . BeFalse ( ) ;
97+ diffsFromClient [ 1 ] . IsRenamedFile . Should ( ) . BeTrue ( ) ;
98+ diffsFromClient [ 1 ] . IsDeletedFile . Should ( ) . BeTrue ( ) ;
99+
100+ }
101+ }
63102 }
64103}
0 commit comments