@Test public void shouldAllowOptionsRequests() throws Exception { // Given final AuthorizationEnabledFilter filter = new AuthorizationEnabledFilter( () -> authManager, logProvider ); when( servletRequest.getMethod() ).thenReturn( "OPTIONS" ); // When filter.doFilter( servletRequest, servletResponse, filterChain ); // Then verify( filterChain ).doFilter( same( servletRequest ), same( servletResponse ) ); }
private void assertChangeOfCreationDateTo(long createdAt) { verify(issueUpdater, atLeastOnce()) .setCreationDate(same(issue), eq(new Date(createdAt)), any()); } }
@Test public void shouldWhitelistMatchingUris() throws Exception { // Given final AuthorizationEnabledFilter filter = new AuthorizationEnabledFilter( () -> authManager, logProvider, Pattern.compile( "/" ), Pattern.compile( "/browser.*" ) ); when( servletRequest.getMethod() ).thenReturn( "GET" ); when( servletRequest.getContextPath() ).thenReturn( "/", "/browser/index.html" ); // When filter.doFilter( servletRequest, servletResponse, filterChain ); filter.doFilter( servletRequest, servletResponse, filterChain ); // Then verify( filterChain, times( 2 ) ).doFilter( same( servletRequest ), same( servletResponse ) ); }
@Test public void broadcastOnIssueChange_passes_same_arguments_to_all_listeners_in_order_of_addition_to_constructor() { underTest.broadcastOnIssueChange(oneIssueOnComponent1, singletonList(component1QGChangeEvent)); ArgumentCaptor<Set<ChangedIssue>> changedIssuesCaptor = newSetCaptor(); inOrder.verify(listener1).onIssueChanges(same(component1QGChangeEvent), changedIssuesCaptor.capture()); Set<ChangedIssue> changedIssues = changedIssuesCaptor.getValue(); inOrder.verify(listener2).onIssueChanges(same(component1QGChangeEvent), same(changedIssues)); inOrder.verify(listener3).onIssueChanges(same(component1QGChangeEvent), same(changedIssues)); inOrder.verifyNoMoreInteractions(); }
@Test @UseDataProvider("oneOrManyProjects") public void onProjectsDeleted_calls_all_listeners_in_order_of_addition_to_constructor(Set<Project> projects) { InOrder inOrder = Mockito.inOrder(listener1, listener2, listener3); underTestWithListeners.onProjectsDeleted(projects); inOrder.verify(listener1).onProjectsDeleted(same(projects)); inOrder.verify(listener2).onProjectsDeleted(same(projects)); inOrder.verify(listener3).onProjectsDeleted(same(projects)); inOrder.verifyNoMoreInteractions(); }
@Test @UseDataProvider("oneOrManyProjects") public void onProjectBranchesDeleted_calls_all_listeners_in_order_of_addition_to_constructor(Set<Project> projects) { InOrder inOrder = Mockito.inOrder(listener1, listener2, listener3); underTestWithListeners.onProjectBranchesDeleted(projects); inOrder.verify(listener1).onProjectBranchesDeleted(same(projects)); inOrder.verify(listener2).onProjectBranchesDeleted(same(projects)); inOrder.verify(listener3).onProjectBranchesDeleted(same(projects)); inOrder.verifyNoMoreInteractions(); }
@Test @UseDataProvider("oneOrManyRekeyedProjects") public void onProjectsRekeyed_calls_all_listeners_in_order_of_addition_to_constructor(Set<RekeyedProject> projects) { InOrder inOrder = Mockito.inOrder(listener1, listener2, listener3); underTestWithListeners.onProjectsRekeyed(projects); inOrder.verify(listener1).onProjectsRekeyed(same(projects)); inOrder.verify(listener2).onProjectsRekeyed(same(projects)); inOrder.verify(listener3).onProjectsRekeyed(same(projects)); inOrder.verifyNoMoreInteractions(); }
@Test public void onStart_delegates_to_ceTaskInterrupter_onStart() { CeTask ceTask = mock(CeTask.class); underTest.onStart(ceTask); verify(ceTaskInterrupter).onStart(same(ceTask)); }
@Test public void loadSingleAvailableFactory() { Locks locks = mock( Locks.class ); StatementLocksFactory factory = mock( StatementLocksFactory.class ); StatementLocksFactorySelector loader = newLoader( locks, factory ); StatementLocksFactory loadedFactory = loader.select(); assertSame( factory, loadedFactory ); verify( factory ).initialize( same( locks ), any( Config.class ) ); }
@Test public void processNextBatchShouldNotifyQueueMonitorAboutDrain() { List<Job> drainedJobs = new ArrayList<>(); Job job = Jobs.noop(); BoltConnection connection = newConnection(); doAnswer( inv -> drainedJobs.addAll( inv.getArgument( 1 ) ) ).when( queueMonitor ).drained( same( connection ), anyCollection() ); connection.enqueue( job ); connection.processNextBatch(); verify( queueMonitor ).drained( same( connection ), anyCollection() ); assertTrue( drainedJobs.contains( job ) ); }
@Test public void shouldNotStopWhenException() { setUpMocks(); when(manager.getFromQueue()).thenThrow(new RuntimeException("Unexpected exception")).thenReturn(notification).thenReturn(null); doAnswer(addUser(ASSIGNEE_SIMON, emailChannel)).when(commentOnIssueAssignedToMe).dispatch(same(notification), any(NotificationDispatcher.Context.class)); doAnswer(addUser(CREATOR_SIMON, emailChannel)).when(commentOnIssueCreatedByMe).dispatch(same(notification), any(NotificationDispatcher.Context.class)); underTest.start(); verify(emailChannel, timeout(2000)).deliver(notification, ASSIGNEE_SIMON); underTest.stop(); verify(gtalkChannel, never()).deliver(notification, ASSIGNEE_SIMON); }
@Test public void shouldNotAddNullAsUser() { setUpMocks(); doAnswer(addUser(null, gtalkChannel)).when(commentOnIssueCreatedByMe).dispatch(same(notification), any(NotificationDispatcher.Context.class)); underTest.start(); underTest.stop(); verify(emailChannel, never()).deliver(any(Notification.class), anyString()); verify(gtalkChannel, never()).deliver(any(Notification.class), anyString()); }
@Test public void onEnd_delegates_to_ceTaskInterrupter_onEnd() { CeTask ceTask = mock(CeTask.class); CeActivityDto.Status randomStatus = CeActivityDto.Status.values()[new Random().nextInt(CeActivityDto.Status.values().length)]; underTest.onEnd(ceTask, randomStatus, null, null); verify(ceTaskInterrupter).onEnd(same(ceTask)); } }
@Test public void broadcastOnIssueChange_passes_immutable_set_of_ChangedIssues() { QGChangeEventListenersImpl underTest = new QGChangeEventListenersImpl(new QGChangeEventListener[] {listener1}); underTest.broadcastOnIssueChange(oneIssueOnComponent1, singletonList(component1QGChangeEvent)); ArgumentCaptor<Set<ChangedIssue>> changedIssuesCaptor = newSetCaptor(); inOrder.verify(listener1).onIssueChanges(same(component1QGChangeEvent), changedIssuesCaptor.capture()); assertThat(changedIssuesCaptor.getValue()).isInstanceOf(ImmutableSet.class); }
@Test public void fresh_install_verifies_that_default_charset_is_utf8() throws SQLException { answerDefaultCharset("utf8"); underTest.handle(connection, DatabaseCharsetChecker.State.FRESH_INSTALL); // no errors, charset has been verified verify(metadata).getDefaultCharset(same(connection)); verifyZeroInteractions(sqlExecutor); }
@Test public void processNextBatchShouldDoNothingIfQueueIsEmptyAndConnectionNotClosed() { BoltConnection connection = newConnection(); connection.processNextBatch(); verify( queueMonitor, never() ).drained( same( connection ), anyCollection() ); }
private List<QGChangeEvent> run(Collection<ComponentDto> components, IssueMetricFormula... formulas) { IssueMetricFormulaFactory formulaFactory = new TestIssueMetricFormulaFactory(asList(formulas)); when(qGateComputer.loadQualityGate(any(DbSession.class), any(OrganizationDto.class), any(ComponentDto.class), any(BranchDto.class))) .thenReturn(qualityGate); when(qGateComputer.getMetricsRelatedTo(qualityGate)).thenReturn(singleton(CoreMetrics.ALERT_STATUS_KEY)); when(qGateComputer.refreshGateStatus(eq(project), same(qualityGate), any(MeasureMatrix.class))) .thenReturn(newQualityGate); MapSettings settings = new MapSettings(new PropertyDefinitions(CorePropertyDefinitions.all())); ProjectConfigurationLoader configurationLoader = new TestProjectConfigurationLoader(settings.asConfig()); LiveMeasureComputerImpl underTest = new LiveMeasureComputerImpl(db.getDbClient(), formulaFactory, qGateComputer, configurationLoader, projectIndexer); return underTest.refresh(db.getSession(), components); }
private void verifyListenerCalled(QGChangeEventListener listener, QGChangeEvent changeEvent, DefaultIssue... issues) { ArgumentCaptor<Set<ChangedIssue>> changedIssuesCaptor = newSetCaptor(); verify(listener).onIssueChanges(same(changeEvent), changedIssuesCaptor.capture()); Set<ChangedIssue> changedIssues = changedIssuesCaptor.getValue(); Tuple[] expected = Arrays.stream(issues) .map(issue -> tuple(issue.key(), ChangedIssueImpl.statusOf(issue), issue.type())) .toArray(Tuple[]::new); assertThat(changedIssues) .hasSize(issues.length) .extracting(ChangedIssue::getKey, t -> t.getStatus(), ChangedIssue::getType) .containsOnly(expected); }
@Test public void upgrade_verifies_that_default_charset_and_columns_are_utf8() throws Exception { answerDefaultCharset("utf8"); answerColumns(asList( new String[] {TABLE_ISSUES, COLUMN_KEE, "utf8"}, new String[] {TABLE_PROJECTS, COLUMN_NAME, "utf8"})); underTest.handle(connection, DatabaseCharsetChecker.State.UPGRADE); // no errors, charsets have been verified verify(metadata).getDefaultCharset(same(connection)); }
@Test public void regular_startup_verifies_that_default_charset_and_columns_are_utf8() throws Exception { answerDefaultCharset("utf8"); answerColumns(asList( new String[] {TABLE_ISSUES, COLUMN_KEE, "utf8"}, new String[] {TABLE_PROJECTS, COLUMN_NAME, "utf8"})); underTest.handle(connection, DatabaseCharsetChecker.State.STARTUP); // no errors, charsets have been verified verify(metadata).getDefaultCharset(same(connection)); }