package Ġcom . ep am . br n . integration Ċ Ċ import Ġcom . ep am . br n . model . Exercise Group Ċ import Ġcom . ep am . br n . model . Series Ċ import Ġcom . ep am . br n . repo . Exercise Group Repository Ċ import Ġcom . ep am . br n . repo . Series Repository Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . security . test . context . support . With Mock User Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . status Ċ import Ġjava . nio . charset . StandardCharsets Ċ Ċ @ With Mock User ( username Ġ= Ġ" test @ test . test ", Ġroles Ġ= Ġ[" ADMIN "]) Ċ class ĠSeries Controller IT Ġ: ĠBase IT () Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġexercise Group Repository : ĠExercise Group Repository ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġseries Repository : ĠSeries Repository ĊĊĠĠĠ Ġprivate Ġval ĠbaseUrl Ġ= Ġ"/ series " ĊĠĠĠ Ġprivate Ġval Ġseries 1 Name Ġ= Ġ" Ñģ ÐµÑĢ Ð¸Ñı Ġ 1 ĠÑĤ ÐµÑģÑĤ " ĊĠĠĠ Ġprivate Ġval Ġseries 2 Name Ġ= Ġ" Ñģ ÐµÑĢ Ð¸Ñı Ġ 2 ĠÑĤ ÐµÑģÑĤ " ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun Ġdelete After Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġexercise Group Repository . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Group With 2 Series (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= ĠExercise Group ( name Ġ= Ġ" ÑĢ ÐµÑĩ ÐµÐ² ÑĭÐµ ĠÑĥ Ð¿ ÑĢÐ°Ð¶ Ð½ ÐµÐ½Ð¸Ñı ĠÑĤ ÐµÑģÑĤ ", Ġdescription Ġ= Ġ" ÑĢ ÐµÑĩ ÐµÐ² ÑĭÐµ ĠÑĥ Ð¿ ÑĢÐ°Ð¶ Ð½ ÐµÐ½Ð¸Ñı ĠÑĤ ÐµÑģÑĤ ") ĊĠĠĠĠĠĠĠ Ġval Ġseries 1 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSeries ( name Ġ= Ġseries 1 Name , Ġdescription Ġ= Ġ" descr 1 ", Ġexercise Group Ġ= Ġgroup ) ĊĠĠĠĠĠĠĠ Ġval Ġseries 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSeries ( name Ġ= Ġseries 2 Name , Ġdescription Ġ= Ġ" descr 2 ", Ġexercise Group Ġ= Ġgroup ) ĊĠĠĠĠĠĠĠ Ġgroup . series . addAll ( set Of ( series 1 , Ġseries 2 )) ĊĠĠĠĠĠĠĠ Ġval Ġsaved Group Ġ= Ġexercise Group Repository . save ( group ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsaved Group . id Ġ?: Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġget Ġseries Ġfor Ġgroup `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠ Ġval Ġid Group Ġ= Ġload Group With 2 Series () ĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ Ġval Ġresult Action Ġ= Ġmock Mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" groupId ", Ġid Group . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġresult Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Action . andReturn (). response . getContent AsString ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( response . contains ( series 1 Name )) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( response . contains ( series 2 Name )) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( response . contains (" exercises ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġget Ġseries Ġfor Ġseries Id `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠ Ġload Group With 2 Series () ĊĠĠĠĠĠĠĠ Ġval Ġseries Id Ġ= Ġseries Repository . find ByName Like ( series 1 Name )[ 0 ]. id ĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ Ġval Ġresult Action Ġ= Ġmock Mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ("/ series /$ series Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġresult Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Action . andReturn (). response . getContent AsString ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( response . contains ( series 1 Name )) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( response . contains (" exercises ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġget Ġfile Ġformat Ġfor Ġseries Id `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġseries Id Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ Ġval Ġresult Action Ġ= Ġmock Mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ("/ series / file Format /$ series Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġresult Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Action . andReturn (). response . getContent AsString ( StandardCharsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Response Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" {" data ":" level , picture Url , exercise Name , words , noise Level , noise Url \ n 1 , family , Ð¡ ÐµÐ¼ ÑĮ Ñı ,( ÑģÑĭ Ð½ ĠÑĢ ÐµÐ± Ñĳ Ð½ Ð¾Ðº ĠÐ¼ Ð°Ð¼ Ð° ), 0 ,\ n 2 , family , Ð¡ ÐµÐ¼ ÑĮ Ñı ,( Ð¾ÑĤ Ðµ ÑĨ ĠÐ± ÑĢÐ°ÑĤ ĠÐ´ ÐµÐ´ Ñĥ ÑĪ ÐºÐ° ), 0 ,\ n 3 , family , Ð¡ ÐµÐ¼ ÑĮ Ñı ,( Ð± Ð°Ð± Ñĥ ÑĪ ÐºÐ° ĠÐ¼ ÑĥÐ¶ ĠÐ² Ð½ ÑĥÑĩ ÐºÐ° ), 0 ,\ n 4 , family , Ð¡ ÐµÐ¼ ÑĮ Ñı ,( ÑģÑĭ Ð½ ĠÑĢ ÐµÐ± Ñĳ Ð½ Ð¾Ðº ĠÑĢ Ð¾Ð´ Ð¸ÑĤÐµ Ð»Ð¸ ĠÐ´ Ð¾Ñĩ ÑĮ ĠÐ¼ Ð°Ð¼ Ð° ĠÐ¿ Ð°Ð¿ Ð° ), 0 , "," errors ":[ ]," meta ": []} """ ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( response . contains (" 1 , family , Ð¡ ÐµÐ¼ ÑĮ Ñı ,( ÑģÑĭ Ð½ ĠÑĢ ÐµÐ± Ñĳ Ð½ Ð¾Ðº ĠÐ¼ Ð°Ð¼ Ð° ), 0 , ")) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( expected Response , Ġresponse ) ĊĠĠĠ Ġ} Ċ } Ċ