/*
 * 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 com.gemstone.gemfire.security;

import java.util.Arrays;

import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.cache.client.ClientCache;
import com.gemstone.gemfire.cache.client.ClientCacheFactory;
import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
import com.gemstone.gemfire.cache.client.internal.GetClientPartitionAttributesOp;
import com.gemstone.gemfire.cache.client.internal.PoolImpl;
import com.gemstone.gemfire.test.junit.categories.DistributedTest;

import org.junit.Test;
import org.junit.experimental.categories.Category;

@Category(DistributedTest.class)
public class IntegratedClientGetClientPartitionAttrCmdAuthDistributedTest extends AbstractIntegratedClientAuthDistributedTest {

  @Test
  public void testGetClientPartitionAttrCmd() {
    client1.invoke("logging in super-user with correct password", () -> {
      ClientCache cache = new ClientCacheFactory(createClientProperties("stranger", "1234567"))
        .setPoolSubscriptionEnabled(true)
        .addPoolServer("localhost", serverPort)
        .create();

      Region region = cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);

      assertNotAuthorized(() -> GetClientPartitionAttributesOp.execute((PoolImpl)cache.getDefaultPool(), REGION_NAME), "CLUSTER:READ");
    });

    client2.invoke("logging in super-user with correct password", () -> {
      ClientCache cache = new ClientCacheFactory(createClientProperties("super-user", "1234567"))
        .setPoolSubscriptionEnabled(true)
        .addPoolServer("localhost", serverPort)
        .create();

      Region region = cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME);

      GetClientPartitionAttributesOp.execute((PoolImpl)cache.getDefaultPool(), REGION_NAME);
    });
  }
}



@@ -847,184 +847,76 @@
 ort 
-java.util.Arrays;%0A%0Aimport com.gemstone.gemfire.cache.Region;%0Aimport com.gemstone.gemfire.cache.client.ClientCache;%0Aimport com.gemstone.gemfire.cache.client.ClientCacheFact
+org.junit.Test;%0Aimport org.junit.experimental.categories.Categ
 ory;%0A
+%0A
 impo
@@ -958,30 +958,21 @@
 t.Client
-RegionShortcut
+Cache
 ;%0Aimport
@@ -1179,83 +1179,8 @@
 t;%0A%0A
-import org.junit.Test;%0Aimport org.junit.experimental.categories.Category;%0A%0A
 @Cat
@@ -1496,32 +1496,8 @@
 he =
- new ClientCacheFactory(
 crea
@@ -1504,26 +1504,21 @@
 teClient
-Properties
+Cache
 (%22strang
@@ -1535,221 +1535,20 @@
 567%22
-))%0A        .setPoolSubscriptionEnabled(true)%0A        .addPoolServer(%22localhost%22, serverPort)%0A        .create();%0A%0A      Region region = cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME
+, serverPort
 );%0A%0A
@@ -1796,31 +1796,8 @@
 e = 
-new ClientCacheFactory(
 crea
@@ -1808,18 +1808,13 @@
 ient
-Properties
+Cache
 (%22su
@@ -1837,221 +1837,20 @@
 567%22
-))%0A        .setPoolSubscriptionEnabled(true)%0A        .addPoolServer(%22localhost%22, serverPort)%0A        .create();%0A%0A      Region region = cache.createClientRegionFactory(ClientRegionShortcut.PROXY).create(REGION_NAME
+, serverPort
 );%0A%0A

add utility method to simplify client cache creation