@Test public void fail_to_create_sub_characteristic_when_wrong_permission() { userSessionRule.setGlobalPermissions(GlobalPermissions.DASHBOARD_SHARING); try { service.create("Compilation", 1); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(ForbiddenException.class); } }
@Test public void fail_to_create_sub_characteristic_when_parent_id_is_not_a_root_characteristic() { when(dao.selectById(1, session)).thenReturn(subCharacteristicDto); try { service.create("Compilation", 1); fail(); } catch (BadRequestException e) { assertThat(e.firstError().getKey()) .isEqualTo("A sub characteristic can not have a sub characteristic as parent."); } }
@Test public void create_first_characteristic() { when(dao.selectMaxCharacteristicOrder(session)).thenReturn(0); DefaultDebtCharacteristic result = (DefaultDebtCharacteristic) service.create("Portability", null); assertThat(result.id()).isEqualTo(currentId); assertThat(result.key()).isEqualTo("PORTABILITY"); assertThat(result.name()).isEqualTo("Portability"); assertThat(result.order()).isEqualTo(1); assertThat(result.createdAt()).isEqualTo(now); }
@Test public void fail_to_create_sub_characteristic_when_name_already_used() { when(dao.selectByName("Compilation", session)).thenReturn(new CharacteristicDto()); when(dao.selectById(1, session)).thenReturn(characteristicDto); try { service.create("Compilation", 1); fail(); } catch (BadRequestException e) { assertThat(e.firstError().getKey()).isEqualTo("errors.is_already_used"); assertThat(e.firstError().getParams()[0]).isEqualTo("Compilation"); } }
@Test public void fail_to_create_sub_characteristic_when_parent_does_not_exists() { when(dao.selectById(1, session)).thenReturn(null); try { service.create("Compilation", 1); fail(); } catch (Exception e) { assertThat(e) .isInstanceOf(NotFoundException.class) .hasMessage("Characteristic with id 1 does not exists."); } }
@Test public void create_sub_characteristic() { when(dao.selectById(1, session)).thenReturn(characteristicDto); DefaultDebtCharacteristic result = (DefaultDebtCharacteristic) service.create("Compilation name", 1); assertThat(result.id()).isEqualTo(currentId); assertThat(result.key()).isEqualTo("COMPILATION_NAME"); assertThat(result.name()).isEqualTo("Compilation name"); assertThat(result.parentId()).isEqualTo(1); assertThat(result.createdAt()).isEqualTo(now); }