@Test public void do_nothing_when_move_down_and_already_on_bottom() { when(dao.selectById(session, 10)) .thenReturn(new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setOrder(2)); when(dao.selectEnabledRootCharacteristics(session)) .thenReturn( newArrayList( new CharacteristicDto().setId(2).setKey("PORTABILITY").setOrder(1), new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setOrder(2))); service.moveDown(10); verify(dao, never()).update(any(CharacteristicDto.class), eq(session)); }
@Test public void fail_to_move_sub_characteristic() { when(dao.selectById(session, 10)) .thenReturn(new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setParentId(1)); when(dao.selectEnabledRootCharacteristics(session)) .thenReturn( newArrayList( new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setOrder(2), new CharacteristicDto().setId(2).setKey("PORTABILITY").setOrder(3))); try { service.moveDown(10); fail(); } catch (BadRequestException e) { assertThat(e.firstError().getKey()).isEqualTo("Sub characteristics can not be moved."); } verify(dao, never()).update(any(CharacteristicDto.class), eq(session)); }
@Test public void move_down() { when(dao.selectById(session, 10)) .thenReturn(new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setOrder(2)); when(dao.selectEnabledRootCharacteristics(session)) .thenReturn( newArrayList( new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setOrder(2), new CharacteristicDto().setId(2).setKey("PORTABILITY").setOrder(3))); DebtCharacteristic result = service.moveDown(10); verify(dao, times(2)).update(characteristicCaptor.capture(), eq(session)); assertThat(result.order()).isEqualTo(3); assertThat(characteristicCaptor.getAllValues().get(0).getOrder()).isEqualTo(2); assertThat(characteristicCaptor.getAllValues().get(0).getUpdatedAt()).isEqualTo(now); assertThat(characteristicCaptor.getAllValues().get(1).getOrder()).isEqualTo(3); assertThat(characteristicCaptor.getAllValues().get(1).getUpdatedAt()).isEqualTo(now); }
@Test public void fail_to_move_characteristic_with_no_order() { when(dao.selectById(session, 10)) .thenReturn(new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setOrder(null)); when(dao.selectEnabledRootCharacteristics(session)) .thenReturn( newArrayList( new CharacteristicDto().setId(10).setKey("MEMORY_EFFICIENCY").setOrder(2), new CharacteristicDto().setId(2).setKey("PORTABILITY").setOrder(3))); try { service.moveDown(10); fail(); } catch (Exception e) { assertThat(e) .isInstanceOf(IllegalArgumentException.class) .hasMessage("The order of the characteristic 'MEMORY_EFFICIENCY' should not be null"); } verify(dao, never()).update(any(CharacteristicDto.class), eq(session)); }