@Before public void initialise() { // create mock db objects databaseSession = new MockDatabaseSession(); databaseSession.setEntities(entities); // create quality profile hierarchy int numberOfProfiles = 4; int numberOfRules = 100; rulesProfiles = createRuleProfileHierarchy("qp", numberOfProfiles, numberOfRules); // create test project DTO Integer projectId = new Integer(123); testProject = new Project("test.project.key"); testProject.setId(projectId); testProject.setName("testProject"); testProject.setLanguage(Java.INSTANCE); // create test project entity testProjectModel = new ResourceModel(); testProjectModel.setId(projectId); testProjectModel.setKey(testProject.getKey()); testProjectModel.setEnabled(Boolean.TRUE); testProjectModel.setRootId(projectId); testProjectModel.setLanguageKey(Java.KEY); testProjectModel.setRulesProfile(createRulesProfile("testProjectProfile", numberOfRules)); // add project to db objects MockDatabaseSession.EntityKey projectKey = databaseSession.new EntityKey(ResourceModel.class, projectId); entities.put(projectKey, testProjectModel); databaseSession.addMockQueryResults(ResourceModel.class, Arrays.asList(testProjectModel)); // define test threshold int violationThreshold = 10; // create violations List<ActiveRule> rules = rulesProfiles[0].getActiveRules(); int numberOfViolationsToBUnderThreshold = ((numberOfRules / 100) * violationThreshold) - 1; for (int i = 0; i < numberOfViolationsToBUnderThreshold; i++) { violations.add(Violation.create(rules.get(i), testProject)); } // create context decoratorContext = new MockDecoratorContext(testProject, testProject, violations); // define default settings settings = new Settings(); settings.setProperty( ProfileProgressionPlugin.GLOBAL_QUALITY_PROFILE_CHANGE_ENABLED_KEY, "true"); settings.setProperty( ProfileProgressionPlugin.PROJECT_QUALITY_PROFILE_CHANGE_ENABLED_KEY, "true"); settings.setProperty( ProfileProgressionPlugin.QUALITY_PROFILE_CHANGE_THRESHOLD_KEY, String.valueOf(violationThreshold)); settings.setProperty( ProfileProgressionPlugin.GLOBAL_TARGET_LANGUAGE_QUALITY_PROFILE_KEY, rulesProfiles[numberOfProfiles - 1].getName()); }
@Before public void before() throws ParseException { SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); singleProject = newProject("foo", "java"); singleProject .setName("Foo") .setDescription("some description") .setAnalysisDate(format.parse("25/12/2010")); multiModuleProject = newProject("root", "java"); multiModuleProject.setName("Root").setAnalysisDate(format.parse("25/12/2010")); moduleA = newProject("a", "java"); moduleA.setName("A").setAnalysisDate(format.parse("25/12/2010")); moduleA.setParent(multiModuleProject); moduleB = newProject("b", "java"); moduleB.setName("B").setAnalysisDate(format.parse("25/12/2010")); moduleB.setParent(multiModuleProject); moduleB1 = newProject("b1", "java"); moduleB1.setName("B1").setAnalysisDate(format.parse("25/12/2010")); moduleB1.setParent(moduleB); }
@Test public void shouldUpdateExistingResource() { setupData("shouldUpdateExistingResource"); ResourcePersister persister = new DefaultResourcePersister(getSession(), mock(ResourcePermissions.class)); singleProject.setName("new name"); singleProject.setDescription("new description"); persister.saveProject(singleProject, null); checkTables( "shouldUpdateExistingResource", new String[] {"build_date", "created_at"}, "projects", "snapshots"); }