/* * Copyright 2016 NAVER Corp. * * Licensed 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 com.navercorp.pinpoint.bootstrap.plugin.jdbc.bindvalue; import java.util.HashMap; import java.util.Map; import org.junit.Assert; import org.junit.Test; import com.navercorp.pinpoint.bootstrap.plugin.jdbc.bindvalue.BindValueUtils; public class BindValueUtilsTest { @Test public void testBindValueToString() throws Exception { String[] bindValue = {"a", "b"}; String result = BindValueUtils.bindValueToString(bindValue); Assert.assertEquals("a, b", result); } @Test public void testBindValueToString_limit1() throws Exception { String[] bindValue = {"a", "b"}; String result = BindValueUtils.bindValueToString(bindValue, 0); Assert.assertEquals("...(2)", result); } @Test public void testBindValueToString_limit2() throws Exception { String[] bindValue = {"a", "b"}; String result = BindValueUtils.bindValueToString(bindValue, 1); Assert.assertEquals("a, ...(2)", result); } @Test public void testBindValueToString_limit3() throws Exception { String[] bindValue = {"abc", "b"}; String result = BindValueUtils.bindValueToString(bindValue, 1); Assert.assertEquals("a...(3), ...(2)", result); } @Test public void testBindValueToString_limit4() throws Exception { String[] bindValue = {"abc", "b", "c"}; String result = BindValueUtils.bindValueToString(bindValue, 1); Assert.assertEquals("a...(3), ...(3)", result); } @Test public void testBindValueToString_limit5() throws Exception { String[] bindValue = {"abc", "b", "c"}; String result = BindValueUtils.bindValueToString(bindValue, 1024); Assert.assertEquals("abc, b, c", result); } @Test public void testBindValueToString_limit6() throws Exception { String[] bindValue = {"a", "b", "1234567891012"}; // limit is smaller than 3rd arg. String result = BindValueUtils.bindValueToString(bindValue, 10); Assert.assertEquals("a, b, 1234567891...(13)", result); } @Test public void testBindValueToString_limit7() throws Exception { String[] bindValue = {"a", "12345678901", "c"}; // limit is smaller than 2nd arg. String result = BindValueUtils.bindValueToString(bindValue, 10); Assert.assertEquals("a, 1234567890...(11), ...(3)", result); } @Test public void testBindValueToString_null() throws Exception { String result = BindValueUtils.bindValueToString((String[])null, 10); Assert.assertEquals("", result); } @Test public void testBindValueToString_native() throws Exception { String[] bindValue = {"a", "b"}; String result = BindValueUtils.bindValueToString(bindValue, -1); Assert.assertEquals("...(2)", result); } @Test public void testBindValueToString_singleLargeString() throws Exception { String[] bindValue = {"123456"}; String result = BindValueUtils.bindValueToString(bindValue, 5); Assert.assertEquals("12345...(6)", result); } @Test public void testBindValueToString_twoLargeString() throws Exception { String[] bindValue = {"123456", "123456"}; String result = BindValueUtils.bindValueToString(bindValue, 5); Assert.assertEquals("12345...(6), ...(2)", result); } // #737 https://github.com/naver/pinpoint/issues/737 @Test public void test_734_bug_regression() throws Exception { Map<Integer, String> bindValue = new HashMap<Integer, String>(); bindValue.put(1, "1"); bindValue.put(2, "2"); // skip 3 bindValue.put(4, "4"); String bindValueToString = BindValueUtils.bindValueToString(bindValue, 100); Assert.assertEquals("1, 2, , 4", bindValueToString); } @Test public void test_index_error_zero() throws Exception { Map<Integer, String> bindValue = new HashMap<Integer, String>(); bindValue.put(0, "0"); String bindValueToString = BindValueUtils.bindValueToString(bindValue, 100); Assert.assertEquals("", bindValueToString); } @Test public void test_index_error_negative() throws Exception { Map<Integer, String> bindValue = new HashMap<Integer, String>(); bindValue.put(-2, "-2"); String bindValueToString = BindValueUtils.bindValueToString(bindValue, 100); Assert.assertEquals("", bindValueToString); } @Test public void test_index_error_complex() throws Exception { Map<Integer, String> bindValue = new HashMap<Integer, String>(); bindValue.put(-2, "-2"); bindValue.put(0, "0"); bindValue.put(1, "1"); bindValue.put(3, "3"); String bindValueToString = BindValueUtils.bindValueToString(bindValue, 100); Assert.assertEquals("1, , 3", bindValueToString); } @Test public void test_NullElement() throws Exception { String[] temp = {"1", null, "3"}; String bindValueToString = BindValueUtils.bindValueToString(temp, 100); Assert.assertEquals("1, , 3", bindValueToString); } }