@Test public void map_dates() { long time = DateUtils.parseDateTime("2016-12-22T19:10:03+0100").getTime(); qualityProfileDb.insert(newQualityProfileDto() .setOrganizationUuid(defaultOrganizationProvider.get().getUuid()) .setLanguage(XOO1.getKey()) .setRulesUpdatedAt("2016-12-21T19:10:03+0100") .setLastUsed(time) .setUserUpdatedAt(time)); SearchWsResponse result = call(ws.newRequest()); assertThat(result.getProfilesCount()).isEqualTo(1); assertThat(result.getProfiles(0).getRulesUpdatedAt()).isEqualTo("2016-12-21T19:10:03+0100"); assertThat(parseDateTime(result.getProfiles(0).getLastUsed()).getTime()).isEqualTo(time); assertThat(parseDateTime(result.getProfiles(0).getUserUpdatedAt()).getTime()).isEqualTo(time); }
public QualityProfiles(Collection<QualityProfile> profiles) { Map<String, QProfile> map = new HashMap<>(profiles.size()); for (QualityProfile qProfile : profiles) { map.put(qProfile.getLanguage(), new QProfile.Builder() .setKey(qProfile.getKey()) .setName(qProfile.getName()) .setLanguage(qProfile.getLanguage()) .setRulesUpdatedAt(DateUtils.parseDateTime(qProfile.getRulesUpdatedAt())).build()); } byLanguage = Collections.unmodifiableMap(map); }
private static InputStream createStreamOfProfiles(String... names) throws IOException { ByteArrayOutputStream os = new ByteArrayOutputStream(); Qualityprofiles.SearchWsResponse.Builder responseBuilder = Qualityprofiles.SearchWsResponse.newBuilder(); for (String n : names) { QualityProfile qp = QualityProfile.newBuilder().setKey(n).setName(n).setLanguage("lang").build(); responseBuilder.addProfiles(qp); } responseBuilder.build().writeTo(os); return new ByteArrayInputStream(os.toByteArray()); } }
public QualityProfiles(Collection<QualityProfile> profiles) { Map<String, QProfile> map = new HashMap<>(profiles.size()); for (QualityProfile qProfile : profiles) { map.put(qProfile.getLanguage(), new QProfile.Builder() .setKey(qProfile.getKey()) .setName(qProfile.getName()) .setLanguage(qProfile.getLanguage()) .setRulesUpdatedAt(DateUtils.parseDateTime(qProfile.getRulesUpdatedAt())).build()); } byLanguage = Collections.unmodifiableMap(map); }
@Test public void actions_when_user_can_edit_profile() { OrganizationDto organization = db.organizations().insert(); QProfileDto profile1 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); QProfileDto profile2 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey())); QProfileDto profile3 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey())); QProfileDto builtInProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey()).setIsBuiltIn(true)); UserDto user = db.users().insertUser(); GroupDto group = db.users().insertGroup(organization); db.qualityProfiles().addUserPermission(profile1, user); db.qualityProfiles().addGroupPermission(profile3, group); userSession.logIn(user).setGroups(group); SearchWsResponse result = call(ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey())); assertThat(result.getProfilesList()) .extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(), qp -> qp.getActions().getDelete(), qp -> qp.getActions().getAssociateProjects()) .containsExactlyInAnyOrder( tuple(profile1.getKee(), true, false, false, true, true), tuple(profile2.getKee(), false, false, false, false, false), tuple(profile3.getKee(), true, false, false, true, true), tuple(builtInProfile.getKee(), false, false, false, false, false)); assertThat(result.getActions().getCreate()).isFalse(); }
@Test public void actions_when_user_is_global_qprofile_administer() { OrganizationDto organization = db.organizations().insert(); QProfileDto customProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); QProfileDto builtInProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()).setIsBuiltIn(true)); QProfileDto defaultProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); db.qualityProfiles().setAsDefault(defaultProfile); UserDto user = db.users().insertUser(); userSession.logIn(user).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization); SearchWsResponse result = call(ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey())); assertThat(result.getProfilesList()) .extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(), qp -> qp.getActions().getDelete(), qp -> qp.getActions().getAssociateProjects()) .containsExactlyInAnyOrder( tuple(customProfile.getKee(), true, true, true, true, true), tuple(builtInProfile.getKee(), false, true, true, false, true), tuple(defaultProfile.getKee(), true, true, false, false, false)); assertThat(result.getActions().getCreate()).isTrue(); }
public void add(String language, String name) { qualityProfiles.add(QualityProfile.newBuilder() .setLanguage(language) .setKey(name) .setName(name) .setRulesUpdatedAt(DateUtils.formatDateTime(new Date(1234567891212L))) .build()); }
@Test public void actions_when_not_logged_in() { OrganizationDto organization = db.organizations().insert(); QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); userSession.anonymous(); SearchWsResponse result = call(ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey())); assertThat(result.getProfilesList()) .extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(), qp -> qp.getActions().getDelete(), qp -> qp.getActions().getAssociateProjects()) .containsExactlyInAnyOrder(tuple(profile.getKee(), false, false, false, false, false)); assertThat(result.getActions().getCreate()).isFalse(); }
private static QualityProfiles mockProfiles(String... keys) { List<QualityProfile> profiles = new LinkedList<>(); for (String k : keys) { QualityProfile p = QualityProfile.newBuilder().setKey(k).setLanguage(k).setRulesUpdatedAt(DateUtils.formatDateTime(new Date())).build(); profiles.add(p); } return new QualityProfiles(profiles); }
@Before public void setUp() { MockitoAnnotations.initMocks(this); qualityProfileProvider = new QualityProfilesProvider(); when(props.getKeyWithBranch()).thenReturn("project"); when(projectRepo.exists()).thenReturn(true); response = new ArrayList<>(1); response.add(QualityProfile.newBuilder().setKey("profile").setName("profile").setLanguage("lang").setRulesUpdatedAt(DateUtils.formatDateTime(new Date())).build()); }