|
39 | 39 | import com.ajou.hertz.domain.instrument.amplifier.entity.Amplifier;
|
40 | 40 | import com.ajou.hertz.domain.instrument.audio_equipment.constant.AudioEquipmentType;
|
41 | 41 | import com.ajou.hertz.domain.instrument.audio_equipment.dto.AudioEquipmentDto;
|
| 42 | +import com.ajou.hertz.domain.instrument.audio_equipment.dto.request.AudioEquipmentUpdateRequest; |
42 | 43 | import com.ajou.hertz.domain.instrument.audio_equipment.dto.request.CreateNewAudioEquipmentRequest;
|
43 | 44 | import com.ajou.hertz.domain.instrument.audio_equipment.entity.AudioEquipment;
|
44 | 45 | import com.ajou.hertz.domain.instrument.bass_guitar.constant.BassGuitarBrand;
|
@@ -456,6 +457,36 @@ class InstrumentCommandServiceTest {
|
456 | 457 | assertThat(result.getImages()).hasSize(newImages.size());
|
457 | 458 | }
|
458 | 459 |
|
| 460 | + @Test |
| 461 | + void 추가할_이미지들이_주어지고_음향장비_정보를_수정하면_새로운_악기_이미지들이_추가된다() throws Exception { |
| 462 | + // given |
| 463 | + long userId = 1L; |
| 464 | + long instrumentId = 2L; |
| 465 | + AudioEquipment audioEquipment = createAudioEquipment(instrumentId, createUser(userId)); |
| 466 | + List<MultipartFile> newImages = List.of( |
| 467 | + createMultipartFile(), |
| 468 | + createMultipartFile() |
| 469 | + ); |
| 470 | + List<InstrumentImage> newInstrumentImages = List.of( |
| 471 | + createInstrumentImage(3L, audioEquipment), |
| 472 | + createInstrumentImage(4L, audioEquipment) |
| 473 | + ); |
| 474 | + AudioEquipmentUpdateRequest updateRequest = createAudioEquipmentUpdateRequest(List.of(), newImages, null, null); |
| 475 | + given(instrumentQueryService.getInstrumentById(instrumentId)) |
| 476 | + .willReturn(audioEquipment); |
| 477 | + given(instrumentImageCommandService.saveImages(audioEquipment, updateRequest.getNewImages())) |
| 478 | + .willReturn(newInstrumentImages); |
| 479 | + |
| 480 | + // when |
| 481 | + AudioEquipmentDto result = sut.updateAudioEquipment(userId, instrumentId, updateRequest); |
| 482 | + |
| 483 | + // then |
| 484 | + then(instrumentQueryService).should().getInstrumentById(instrumentId); |
| 485 | + then(instrumentImageCommandService).should().saveImages(audioEquipment, updateRequest.getNewImages()); |
| 486 | + verifyEveryMocksShouldHaveNoMoreInteractions(); |
| 487 | + assertThat(result.getImages()).hasSize(newImages.size()); |
| 488 | + } |
| 489 | + |
459 | 490 | @Test
|
460 | 491 | void 삭제할_해시태그들의_id_리스트가_주어지고_매물_정보를_수정하면_해시태그가_삭제된다() throws Exception {
|
461 | 492 | long userId = 1L;
|
@@ -880,4 +911,17 @@ private EffectorUpdateRequest createEffectorUpdateRequest(
|
880 | 911 | null, null
|
881 | 912 | );
|
882 | 913 | }
|
| 914 | + |
| 915 | + private AudioEquipmentUpdateRequest createAudioEquipmentUpdateRequest( |
| 916 | + @Nullable List<Long> deletedImageIds, |
| 917 | + @Nullable List<MultipartFile> newImages, |
| 918 | + @Nullable List<Long> deletedHashtagIds, |
| 919 | + @Nullable List<String> newHashtags |
| 920 | + ) throws Exception { |
| 921 | + return ReflectionUtils.createAudioEquipmentUpdateRequest( |
| 922 | + null, null, null, null, null, null, null, |
| 923 | + deletedImageIds, newImages, deletedHashtagIds, newHashtags, |
| 924 | + null |
| 925 | + ); |
| 926 | + } |
883 | 927 | }
|
0 commit comments