<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>CollectionsHelperTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../testapidocs/org/apache/chemistry/opencmis/commons/impl/misc/CollectionsHelperTest.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.commons.impl.misc;
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a class="jxr_linenumber" name="23" href="#23">23</a>  
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="27" href="#27">27</a>  
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.CollectionsHelper;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="30" href="#30">30</a>  
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/commons/impl/misc/CollectionsHelperTest.html">CollectionsHelperTest</a> {
<a class="jxr_linenumber" name="32" href="#32">32</a>  
<a class="jxr_linenumber" name="33" href="#33">33</a>      @Test
<a class="jxr_linenumber" name="34" href="#34">34</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testHelpers() {
<a class="jxr_linenumber" name="35" href="#35">35</a>          assertTrue(CollectionsHelper.isNullOrEmpty((List&lt;String&gt;) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="36" href="#36">36</a>          assertTrue(CollectionsHelper.isNullOrEmpty((Map&lt;String, String&gt;) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="37" href="#37">37</a>          assertFalse(CollectionsHelper.isNotEmpty((List&lt;String&gt;) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="38" href="#38">38</a>          assertFalse(CollectionsHelper.isNotEmpty((Map&lt;String, String&gt;) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="39" href="#39">39</a>  
<a class="jxr_linenumber" name="40" href="#40">40</a>          assertTrue(CollectionsHelper.isNullOrEmpty(Collections.emptyList()));
<a class="jxr_linenumber" name="41" href="#41">41</a>          assertTrue(CollectionsHelper.isNullOrEmpty(Collections.emptyMap()));
<a class="jxr_linenumber" name="42" href="#42">42</a>          assertFalse(CollectionsHelper.isNotEmpty(Collections.emptyList()));
<a class="jxr_linenumber" name="43" href="#43">43</a>          assertFalse(CollectionsHelper.isNotEmpty(Collections.emptyMap()));
<a class="jxr_linenumber" name="44" href="#44">44</a>  
<a class="jxr_linenumber" name="45" href="#45">45</a>          assertFalse(CollectionsHelper.isNullOrEmpty(Collections.singletonList(<span class="jxr_string">"value"</span>)));
<a class="jxr_linenumber" name="46" href="#46">46</a>          assertFalse(CollectionsHelper.isNullOrEmpty(Collections.singletonMap(<span class="jxr_string">"key"</span>, <span class="jxr_string">"value"</span>)));
<a class="jxr_linenumber" name="47" href="#47">47</a>          assertTrue(CollectionsHelper.isNotEmpty(Collections.singletonList(<span class="jxr_string">"value"</span>)));
<a class="jxr_linenumber" name="48" href="#48">48</a>          assertTrue(CollectionsHelper.isNotEmpty(Collections.singletonMap(<span class="jxr_string">"key"</span>, <span class="jxr_string">"value"</span>)));
<a class="jxr_linenumber" name="49" href="#49">49</a>      }
<a class="jxr_linenumber" name="50" href="#50">50</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

