You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ji...@apache.org on 2016/11/18 03:03:08 UTC

incubator-eagle git commit: EAGLE-781 Add unit test for eagle-audit-base module

Repository: incubator-eagle
Updated Branches:
  refs/heads/master 30b671cf2 -> 03dc7d848


EAGLE-781 Add unit test for eagle-audit-base module

EAGLE-781 Add unit test for eagle-audit-base module
- Add unit test for eagle-audit-base module.

https://issues.apache.org/jira/browse/EAGLE-781

Author: chitin <ch...@gmail.com>

Closes #660 from chitin/EAGLE-781.


Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/03dc7d84
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/03dc7d84
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/03dc7d84

Branch: refs/heads/master
Commit: 03dc7d8488366ad87889ee2398ef5aac62eaf985
Parents: 30b671c
Author: chitin <ch...@gmail.com>
Authored: Fri Nov 18 11:03:02 2016 +0800
Committer: wujinhu <wu...@126.com>
Committed: Fri Nov 18 11:03:02 2016 +0800

----------------------------------------------------------------------
 .../audit/dao/TestSearchRequestBuilder.java     | 48 ++++++++++
 .../audit/entity/TestGenericAuditEntity.java    | 81 ++++++++++++++++
 .../audit/listener/AuditListenerTestHelper.java | 32 +++++++
 .../eagle/audit/listener/TestAuditSupport.java  | 98 ++++++++++++++++++++
 4 files changed, 259 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/03dc7d84/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/dao/TestSearchRequestBuilder.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/dao/TestSearchRequestBuilder.java b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/dao/TestSearchRequestBuilder.java
new file mode 100644
index 0000000..c369142
--- /dev/null
+++ b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/dao/TestSearchRequestBuilder.java
@@ -0,0 +1,48 @@
+/*
+ * 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.eagle.audit.dao;
+
+import junit.framework.Assert;
+import org.apache.commons.lang.time.DateUtils;
+import org.apache.eagle.service.client.EagleServiceSingleEntityQueryRequest;
+import org.apache.eagle.service.client.IEagleServiceClient;
+import org.apache.eagle.service.client.impl.EagleServiceClientImpl;
+import org.apache.eagle.service.client.impl.SearchRequestBuilder;
+import org.junit.Test;
+
+import java.lang.reflect.Field;
+
+/**
+ * @Since 11/15/16.
+ */
+public class TestSearchRequestBuilder {
+
+    @Test
+    public void testQuery() throws Exception {
+        IEagleServiceClient client = new EagleServiceClientImpl("localhost", 9090);
+        String site = "sandbox";
+        String query = "AuditService" + "[@serviceName=\"AlertDataSourceService\" AND @site=\"" + site + "\"]{*}";
+        SearchRequestBuilder searchRequestBuilder = client.search().startTime(0).endTime(10 * DateUtils.MILLIS_PER_DAY).pageSize(Integer.MAX_VALUE).query(query);
+        Field requestField = SearchRequestBuilder.class.getDeclaredField("request");
+        requestField.setAccessible(true);
+        EagleServiceSingleEntityQueryRequest request = (EagleServiceSingleEntityQueryRequest)requestField.get(searchRequestBuilder);
+        String expected = "query=AuditService%5B%40serviceName%3D%22AlertDataSourceService%22+AND+%40site%3D%22sandbox%22%5D%7B*%7D&pageSize=2147483647&startTime=1970-01-01%2000:00:00&endTime=1970-01-11%2000:00:00&treeAgg=false";
+        Assert.assertEquals(expected, request.getQueryParameterString());
+    }
+}
+
+

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/03dc7d84/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/entity/TestGenericAuditEntity.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/entity/TestGenericAuditEntity.java b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/entity/TestGenericAuditEntity.java
new file mode 100644
index 0000000..24b558a
--- /dev/null
+++ b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/entity/TestGenericAuditEntity.java
@@ -0,0 +1,81 @@
+/*
+ * 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.eagle.audit.entity;
+
+import org.apache.eagle.audit.common.AuditConstants;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Since 11/14/16.
+ */
+public class TestGenericAuditEntity {
+
+    @Test
+    public void testEqualsObj() {
+        GenericAuditEntity genericAuditEntity = new GenericAuditEntity();
+        Assert.assertTrue(genericAuditEntity.equals(genericAuditEntity));
+    }
+
+    @Test
+    public void testEqualsInstanceOf() {
+        GenericAuditEntity genericAuditEntity = new GenericAuditEntity();
+        Object obj = new Object();
+        Assert.assertFalse(genericAuditEntity.equals(obj));
+    }
+
+    @Test
+    public void testEqualsTrue() {
+        GenericAuditEntity genericAuditEntity1 = new GenericAuditEntity();
+        GenericAuditEntity genericAuditEntity2 = new GenericAuditEntity();
+        Map<String, String> tags1 = new HashMap<>();
+        tags1.put(AuditConstants.AUDIT_COLUMN_SERVICE_NAME, "testService");
+        tags1.put(AuditConstants.AUDIT_COLUMN_USER_ID, "eagle1");
+        tags1.put(AuditConstants.AUDIT_COLUMN_OPERATION, "UPDATE");
+        tags1.put(AuditConstants.AUDIT_COLUMN_TIMESTAMP, "1479107183");
+        Map<String, String> tags2 = new HashMap<>();
+        tags2.put(AuditConstants.AUDIT_COLUMN_SERVICE_NAME, "testService");
+        tags2.put(AuditConstants.AUDIT_COLUMN_USER_ID, "eagle1");
+        tags2.put(AuditConstants.AUDIT_COLUMN_OPERATION, "UPDATE");
+        tags2.put(AuditConstants.AUDIT_COLUMN_TIMESTAMP, "1479107183");
+        genericAuditEntity1.setTags(tags1);
+        genericAuditEntity2.setTags(tags2);
+        Assert.assertTrue(genericAuditEntity1.equals(genericAuditEntity2));
+    }
+
+    @Test
+    public void testEqualsFalse() {
+        GenericAuditEntity genericAuditEntity1 = new GenericAuditEntity();
+        GenericAuditEntity genericAuditEntity2 = new GenericAuditEntity();
+        Map<String, String> tags1 = new HashMap<>();
+        tags1.put(AuditConstants.AUDIT_COLUMN_SERVICE_NAME, "testService");
+        tags1.put(AuditConstants.AUDIT_COLUMN_USER_ID, "eagle1");
+        tags1.put(AuditConstants.AUDIT_COLUMN_OPERATION, "UPDATE");
+        tags1.put(AuditConstants.AUDIT_COLUMN_TIMESTAMP, null);
+        Map<String, String> tags2 = new HashMap<>();
+        tags2.put(AuditConstants.AUDIT_COLUMN_SERVICE_NAME, "testService");
+        tags2.put(AuditConstants.AUDIT_COLUMN_USER_ID, "eagle1");
+        tags2.put(AuditConstants.AUDIT_COLUMN_OPERATION, "UPDATE");
+        tags2.put(AuditConstants.AUDIT_COLUMN_TIMESTAMP, "1479107183");
+        genericAuditEntity1.setTags(tags1);
+        genericAuditEntity2.setTags(tags2);
+        Assert.assertFalse(genericAuditEntity1.equals(genericAuditEntity2));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/03dc7d84/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/AuditListenerTestHelper.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/AuditListenerTestHelper.java b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/AuditListenerTestHelper.java
new file mode 100644
index 0000000..e2622cf
--- /dev/null
+++ b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/AuditListenerTestHelper.java
@@ -0,0 +1,32 @@
+/*
+ * 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.eagle.audit.listener;
+
+import org.apache.eagle.audit.common.AuditEvent;
+
+/**
+ * @Since 11/11/16.
+ */
+public class AuditListenerTestHelper implements AuditListener {
+    private AuditSupport auditSupport = new AuditSupport(this);
+    public AuditListenerTestHelper() {
+        auditSupport.addAuditListener(this);
+    }
+
+    @Override
+    public void auditEvent(AuditEvent event) {}
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/03dc7d84/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/TestAuditSupport.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/TestAuditSupport.java b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/TestAuditSupport.java
new file mode 100644
index 0000000..6e7b5cf
--- /dev/null
+++ b/eagle-core/eagle-query/eagle-audit-base/src/test/java/org/apache/eagle/audit/listener/TestAuditSupport.java
@@ -0,0 +1,98 @@
+/*
+ * 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.eagle.audit.listener;
+
+import junit.framework.Assert;
+import org.apache.eagle.audit.common.AuditListenerMap;
+import org.apache.eagle.audit.entity.GenericAuditEntity;
+import org.junit.Test;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Since 11/9/16.
+ */
+public class TestAuditSupport {
+
+    @Test
+    public void addAuditLFieldListenerNull() throws Exception {
+        AuditSupport auditSupport = new AuditSupport(this);
+        Field mapField = AuditSupport.class.getDeclaredField("map");
+        mapField.setAccessible(true);
+        AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport);
+        AuditListener auditListener = null;
+        auditSupport.addAuditListener(auditListener);
+        Assert.assertTrue(map.getEntries() == Collections.<Map.Entry<String, AuditListener[]>>emptySet());
+    }
+
+    @Test
+    public void addAuditProxyNullListener() throws Exception {
+        AuditSupport auditSupport = new AuditSupport(this);
+        Field mapField = AuditSupport.class.getDeclaredField("map");
+        mapField.setAccessible(true);
+        AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport);
+        AuditListener auditListener = new AuditListenerProxy("test", null);
+        auditSupport.addAuditListener(auditListener);
+        Assert.assertNull(map.get("test"));
+    }
+
+    @Test
+    public void addAuditProxyHbase() throws Exception {
+        AuditSupport auditSupport = new AuditSupport(this);
+        Field mapField = AuditSupport.class.getDeclaredField("map");
+        mapField.setAccessible(true);
+        AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport);
+        AuditListener auditListener = new AuditListenerTestHelper();
+        auditSupport.addAuditListener(auditListener);
+        Assert.assertNull(map.get("test"));
+    }
+
+    @Test
+    public void testRemoveNull() {
+        AuditSupport auditSupport = new AuditSupport(this);
+        AuditListener auditListener = null;
+        auditSupport.removeAuditListener(auditListener);
+    }
+
+    @Test
+    public void testRemoveAuditProxy() {
+        AuditSupport auditSupport = new AuditSupport(this);
+        AuditListener auditListener = new AuditListenerTestHelper();
+        auditSupport.addAuditListener(auditListener);
+        auditSupport.removeAuditListener(auditListener);
+    }
+
+    @Test
+    public void testFireAudit() throws Exception {
+        AuditSupport auditSupport = new AuditSupport(this);
+        Field mapField = AuditSupport.class.getDeclaredField("map");
+        mapField.setAccessible(true);
+        AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport);
+        AuditListener auditListener1 = new AuditListenerTestHelper();
+        AuditListener auditListener2 = new AuditListenerTestHelper();
+        AuditListener[] listeners = {auditListener1, auditListener2};
+        map.set("testServiceName", listeners);
+        map.set(null, listeners);
+        List<GenericAuditEntity> auditEntities = new ArrayList<>();
+        GenericAuditEntity genericAuditEntity = new GenericAuditEntity();
+        auditEntities.add(genericAuditEntity);
+        auditSupport.fireAudit("testServiceName", auditEntities);
+    }
+}