99import org .junit .jupiter .api .DisplayName ;
1010import org .junit .jupiter .api .Test ;
1111import org .junit .jupiter .api .extension .ExtendWith ;
12+ import org .mockito .ArgumentCaptor ;
1213import org .mockito .InjectMocks ;
1314import org .mockito .Mock ;
1415import org .mockito .junit .jupiter .MockitoExtension ;
1718import com .opensource .docgrid .domain .embedding .fixture .EmbeddingModelFixture ;
1819import com .opensource .docgrid .domain .search .entity .SearchQuery ;
1920import com .opensource .docgrid .domain .search .enums .ResultStatus ;
21+ import com .opensource .docgrid .domain .search .enums .SearchType ;
2022import com .opensource .docgrid .domain .search .fixture .SearchQueryFixture ;
2123import com .opensource .docgrid .domain .search .repository .SearchQueryRepository ;
2224
@@ -31,19 +33,24 @@ class SearchQueryCommandServiceTest {
3133 private SearchQueryRepository searchQueryRepository ;
3234
3335 @ Test
34- @ DisplayName ("createProcessing: PROCESSING 상태로 SearchQuery를 저장한다" )
36+ @ DisplayName ("createProcessing: PROCESSING 상태와 VECTOR 타입으로 SearchQuery를 저장한다" )
3537 void createProcessing_savesWithProcessingStatus () {
3638 EmbeddingModel model = EmbeddingModelFixture .createDefaultModel ();
37- SearchQuery saved = SearchQueryFixture .createProcessing ();
38- given (searchQueryRepository .save (any (SearchQuery .class ))).willReturn (saved );
39+ given (searchQueryRepository .save (any (SearchQuery .class ))).willAnswer (i -> i .getArgument (0 ));
3940
40- SearchQuery result = searchQueryCommandService .createProcessing (
41+ searchQueryCommandService .createProcessing (
4142 null , null , SearchQueryFixture .QUERY_TEXT ,
4243 model , SearchQueryFixture .VECTOR , SearchQueryFixture .TOP_K
4344 );
4445
45- assertThat (result .getStatus ()).isEqualTo (ResultStatus .PROCESSING );
46- then (searchQueryRepository ).should (times (1 )).save (any (SearchQuery .class ));
46+ ArgumentCaptor <SearchQuery > captor = ArgumentCaptor .forClass (SearchQuery .class );
47+ then (searchQueryRepository ).should (times (1 )).save (captor .capture ());
48+
49+ SearchQuery saved = captor .getValue ();
50+ assertThat (saved .getStatus ()).isEqualTo (ResultStatus .PROCESSING );
51+ assertThat (saved .getSearchType ()).isEqualTo (SearchType .VECTOR );
52+ assertThat (saved .getTopK ()).isEqualTo (SearchQueryFixture .TOP_K );
53+ assertThat (saved .getQueryText ()).isEqualTo (SearchQueryFixture .QUERY_TEXT );
4754 }
4855
4956 @ Test
0 commit comments