This is an automated email from the ASF dual-hosted git repository. aichrist pushed a commit to branch analytics-framework in repository https://gitbox.apache.org/repos/asf/nifi.git
commit 59147a387432015cc5869bb0b5b7d0b11ab0b0aa Author: Yolanda Davis <[email protected]> AuthorDate: Wed Jul 31 10:47:23 2019 -0400 NIFI-6510 Added tests for engine (cherry picked from commit 6d7a13b) --- ...TestCachingConnectionStatusAnalyticsEngine.java | 39 ++++++++++++++ .../TestConnectionStatusAnalyticsEngine.java | 29 ++++++++++ .../analytics/TestStatusAnalyticsEngine.java | 63 ++++++++++++++++++++++ 3 files changed, 131 insertions(+) diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestCachingConnectionStatusAnalyticsEngine.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestCachingConnectionStatusAnalyticsEngine.java new file mode 100644 index 0000000..abffafd --- /dev/null +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestCachingConnectionStatusAnalyticsEngine.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.controller.status.analytics; + +import org.apache.nifi.controller.flow.FlowManager; +import org.apache.nifi.controller.status.history.ComponentStatusRepository; +import org.junit.Test; + +public class TestCachingConnectionStatusAnalyticsEngine extends TestStatusAnalyticsEngine{ + + @Override + public StatusAnalyticsEngine getStatusAnalyticsEngine(FlowManager flowManager, ComponentStatusRepository componentStatusRepository) { + return new CachingConnectionStatusAnalyticsEngine(flowManager,componentStatusRepository); + } + + @Test + public void testCachedStatusAnalytics(){ + StatusAnalyticsEngine statusAnalyticsEngine = new CachingConnectionStatusAnalyticsEngine(flowManager,statusRepository); + StatusAnalytics statusAnalyticsA = statusAnalyticsEngine.getStatusAnalytics("A"); + StatusAnalytics statusAnalyticsB = statusAnalyticsEngine.getStatusAnalytics("B"); + StatusAnalytics statusAnalyticsTest = statusAnalyticsEngine.getStatusAnalytics("A"); + assert(statusAnalyticsA.equals(statusAnalyticsTest)); + } + +} diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestConnectionStatusAnalyticsEngine.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestConnectionStatusAnalyticsEngine.java new file mode 100644 index 0000000..2005e04 --- /dev/null +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestConnectionStatusAnalyticsEngine.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.controller.status.analytics; + +import org.apache.nifi.controller.flow.FlowManager; +import org.apache.nifi.controller.status.history.ComponentStatusRepository; + +public class TestConnectionStatusAnalyticsEngine extends TestStatusAnalyticsEngine { + + @Override + public StatusAnalyticsEngine getStatusAnalyticsEngine(FlowManager flowManager, ComponentStatusRepository statusRepository) { + return new ConnectionStatusAnalyticsEngine(flowManager, statusRepository); + } + +} diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestStatusAnalyticsEngine.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestStatusAnalyticsEngine.java new file mode 100644 index 0000000..dfaaa02 --- /dev/null +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/status/analytics/TestStatusAnalyticsEngine.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.controller.status.analytics; + +import static org.junit.Assert.assertNotNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; + +import java.util.Collections; + +import org.apache.nifi.controller.flow.FlowManager; +import org.apache.nifi.controller.status.history.ComponentStatusRepository; +import org.apache.nifi.controller.status.history.StatusHistory; +import org.apache.nifi.controller.status.history.StatusSnapshot; +import org.apache.nifi.groups.ProcessGroup; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; + +public abstract class TestStatusAnalyticsEngine { + + protected ComponentStatusRepository statusRepository; + protected FlowManager flowManager; + + @Before + public void setup() { + + statusRepository = Mockito.mock(ComponentStatusRepository.class); + flowManager = Mockito.mock(FlowManager.class); + ProcessGroup processGroup = Mockito.mock(ProcessGroup.class); + StatusHistory statusHistory = Mockito.mock(StatusHistory.class); + StatusSnapshot statusSnapshot = Mockito.mock(StatusSnapshot.class); + when(statusSnapshot.getMetricDescriptors()).thenReturn(Collections.emptySet()); + when(flowManager.getRootGroup()).thenReturn(processGroup); + when(statusRepository.getConnectionStatusHistory(anyString(),any(),any(),anyInt())).thenReturn(statusHistory); + } + + @Test + public void testGetStatusAnalytics(){ + StatusAnalyticsEngine statusAnalyticsEngine = getStatusAnalyticsEngine(flowManager,statusRepository); + StatusAnalytics statusAnalytics = statusAnalyticsEngine.getStatusAnalytics("1"); + assertNotNull(statusAnalytics); + } + + public abstract StatusAnalyticsEngine getStatusAnalyticsEngine(FlowManager flowManager, ComponentStatusRepository componentStatusRepository); + +}
