/** * Gets the diagnosis service initializing it with the configurations established. * * @param processor * Diagnosis CMR processor. * @return Returns the diagnosis service. */ @Autowired @Bean public IDiagnosisService getDiagnosisService(DiagnosisCmrProcessor processor) { List<String> rulesPackages = new ArrayList<>(); rulesPackages.add(RULES_PACKAGE); IDiagnosisService diagnosisService = new DiagnosisService(this, rulesPackages, 2, 10L, 2); processor.setDiagnosisService(diagnosisService); return diagnosisService; }
@Test public void initSuccessfully() { diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, 2, 50L, 2); assertThat(diagnosisService.init(), is(true)); }
@Test(expectedExceptions = IllegalArgumentException.class) public void cannotBeDiagnosedWithInvocationSequenceDataNull() { double baseline = 1000; diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, 2, 50L, 2); diagnosisService.diagnose(null, baseline); }
@Test(expectedExceptions = IllegalArgumentException.class) public void cannotBeDiagnosedWithNullAndNegativeBaseline() { diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, 2, 50L, 2); diagnosisService.diagnose(null, -1); } }
@BeforeMethod private void init() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { InvocationSequenceData invocationSequenceData = new InvocationSequenceData(); invocationSequenceData.setDuration(5000d); diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, 2, 50L, 3); Field fieldEngine; fieldEngine = DiagnosisService.class.getDeclaredField("engine"); fieldEngine.setAccessible(true); fieldEngine.set(diagnosisService, engine); Field fieldDiagnosisServiceExecutor = DiagnosisService.class.getDeclaredField("diagnosisServiceExecutor"); fieldDiagnosisServiceExecutor.setAccessible(true); fieldDiagnosisServiceExecutor.set(diagnosisService, diagnosisServiceExecutor); }
@Test public void initFailureWithoutRules() { diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.shared.all"); } }, 2, 50L, 2); InvocationSequenceData invocationSequenceData = new InvocationSequenceData(); invocationSequenceData.setDuration(5000d); assertThat(diagnosisService.init(), is(false)); }
@Test(expectedExceptions = IllegalArgumentException.class) public void initFailureWithNegativeNumberOfSessionWorkers() { diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, -2, 50L, 2); InvocationSequenceData invocationSequenceData = new InvocationSequenceData(); invocationSequenceData.setDuration(5000d); assertThat(diagnosisService.init(), is(false)); }
@Test public void initAndShutDown() { diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, 2, 50L, 2); diagnosisService.init(); diagnosisService.shutdown(true); assertThat(diagnosisService.isShutdown(), is(true)); } }
@Test public void initFailureWithRulesInPackageWithMultipleActionTag() { diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.engine.testrules"); } }, 2, 50L, 2); InvocationSequenceData invocationSequenceData = new InvocationSequenceData(); invocationSequenceData.setDuration(5000d); assertThat(diagnosisService.init(), is(false)); }
@Test public void canBeDiagnosed() { double baseline = 1000; diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, 2, 50L, 2); InvocationSequenceData invocationSequenceData = new InvocationSequenceData(); invocationSequenceData.setDuration(5000d); boolean canBeDiagnosed = diagnosisService.diagnose(invocationSequenceData, baseline); assertThat(canBeDiagnosed, equalTo(true)); }
@Test(expectedExceptions = IllegalArgumentException.class) public void cannotBeDiagnosedWithBaselineNegative() { diagnosisService = new DiagnosisService(problemOccurrenceConsumer, new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("rocks.inspectit.server.diagnosis.service.rules.testrules"); } }, 2, 50L, 2); InvocationSequenceData invocationSequenceData = new InvocationSequenceData(); invocationSequenceData.setDuration(5000d); diagnosisService.diagnose(invocationSequenceData, -1); }