/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* 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
*
*******************************************************************************/
package org.ebayopensource.turmeric.policy.adminui.client.model;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.junit.Assert.fail;
import static org.powermock.api.easymock.PowerMock.mockStatic;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.easymock.PowerMock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import com.google.gwt.http.client.Response;
@RunWith(PowerMockRunner.class)
@PrepareForTest({ ErrorResponse.class })
public class AbstractPolicyAdminUIServiceTest {
private Response response = null;
private String errorJSONMsg = null;
Object errorMsgEval = null;
AbstractPolicyAdminUIService abstractPolicyAdminUIService = null;
ErrorResponse errorResponse = null;
@Before
public void setUp() {
errorJSONMsg = "{\"jsonns.ns2\":\"urn:oasis:names:tc:xacml:2.0:policy:schema:os\",\"jsonns.ns1\":\"http://www.ebayopensource.org/turmeric/security/v1/services\",\"jsonns.ms\":\"http://www.ebayopensource.org/turmeric/common/v1/types\",\"jsonns.xs\":\"http://www.w3.org/2001/XMLSchema\",\"jsonns.xsi\":\"http://www.w3.org/2001/XMLSchema-instance\",\"ns1.createPolicyResponse\":{\"ms.ack\":\"Success\",\"ns1.policyId\":\"2\"}}";// {\"jsonns.ns2\":\"urn:oasis:names:tc:xacml:2.0:policy:schema:os\",\"jsonns.ns1\":\"http://www.ebayopensource.org/turmeric/security/v1/services\",\"jsonns.ms\":\"http://www.ebayopensource.org/turmeric/common/v1/types\",\"jsonns.xs\":\"http://www.w3.org/2001/XMLSchema\",\"jsonns.xsi\":\"http://www.w3.org/2001/XMLSchema-instance\",\"ns1.createPolicyResponse\":{\"ms.ack\":\"Failure\",\"ms.errorMessage\":{\"ms.error\":[{\"ms.errorId\":\"20004\",\"ms.domain\":\"TurmericPolicy\",\"ms.subdomain\":\"POLICY\",\"ms.severity\":\"Error\",\"ms.category\":\"System\",\"ms.message\":\"Invalid input : Please input value for policy name or Id.\",\"ms.parameter\":[{\"@name\":\"Param1\",\"__value__\":\"Please input value for policy name or Id.\"}],\"ms.errorName\":\"svc_policyservice_invalid_input_error\",\"ms.resolution\":\"\",\"ms.organization\":\"eBay\"}]},\"ns1.policyId\":\"0\"}}";
response = org.easymock.EasyMock.createMock(Response.class);
mockStatic(ErrorResponse.class);
errorResponse = org.powermock.api.easymock.PowerMock
.createMock(ErrorResponse.class);
abstractPolicyAdminUIService = new AbstractPolicyAdminUIService();
}
@Test
public void testNoError() {
response = null;
try {
abstractPolicyAdminUIService.getErrorAsThrowable(response);
} catch (Throwable t) {
fail("an exception was thrown");
}
}
@Test (expected=Throwable.class)
public void testErrorResponseNull() {
String errorJSONMsg_1 = "{\"jsonns.ns2\":\"urn:oasis:names:tc:xacml:2.0:policy:schema:os\",\"jsonns.ns1\":\"http://www.ebayopensource.org/turmeric/security/v1/services\",\"jsonns.ms\":\"http://www.ebayopensource.org/turmeric/common/v1/types\",\"jsonns.xs\":\"http://www.w3.org/2001/XMLSchema\",\"jsonns.xsi\":\"http://www.w3.org/2001/XMLSchema-instance\",\"ns1.createPolicyResponse\":{\"ns1.policyId\":\"0\"}}";
expect(response.getText()).andReturn(errorJSONMsg_1);
expect(ErrorResponse.fromJSON(errorJSONMsg_1)).andReturn(errorResponse);
replay(response);
PowerMock.replay(ErrorResponse.class);
AbstractPolicyAdminUIService policyAdminUIService = new AbstractPolicyAdminUIService();
policyAdminUIService.getErrorAsThrowable(response);
EasyMock.verify(response);
}
}