use of com.zimbra.soap.account.type.Attr in project zm-mailbox by Zimbra.
the class ToXML method encodeHabGroup.
/**
* @param parent parent element of XML response
* @param grp the group to encode
* @param parentId id of the parent group
*/
public static void encodeHabGroup(Element parent, HABGroup grp, String parentId) {
Element habGroup = parent.addNonUniqueElement(AccountConstants.E_HAB_GROUP);
habGroup.addAttribute(AccountConstants.A_NAME, grp.getName());
for (Attr attr : grp.getAttrs()) {
if (!skipAttrs.contains(attr.getKey())) {
ToXML.encodeAttr(habGroup, attr.getKey(), attr.getValue());
}
}
if (parentId != null) {
habGroup.addAttribute(AccountConstants.A_PARENT_HAB_GROUP_ID, parentId);
}
habGroup.addAttribute(AdminConstants.A_ID, grp.getId());
habGroup.addAttribute(AccountConstants.A_HAB_SENIORITY_INDEX, grp.getSeniorityIndex());
for (HABGroup habGrp : grp.getChildGroups()) {
if (habGrp.getId() != null) {
encodeHabGroup(habGroup, habGrp, grp.getId());
}
}
}
use of com.zimbra.soap.account.type.Attr in project zm-mailbox by Zimbra.
the class JaxbToJsonTest method zimbraOddKeyValuePairsAnnotation.
/**
* Check that JSON can be deserialised into a JAXB object when some of the JSON represents Zimbra KeyValuePairs
* (i.e. An "_attrs" array).
* In this case, the target objects for each keyvalue pair do NOT use the defaults of "a" for the element name and
* "n" for the attribute name in the XML form.
* Desired XML :<br />
* <key-value-pairs-tester xmlns="urn:zimbraTest">
* <oddElemName name="key1">value1</oddElemName>
* <oddElemName name="key2">value2-a</oddElemName>
* <oddElemName name="key2">value2-b</oddElemName>
* </key-value-pairs-tester>
*<br />
* Desired JSON :<br />
* {
* "_attrs": {
* "key1": "value1",
* "key2": [
* "value2-a",
* "value2-b"]
* },
* "_jsns": "urn:zimbraTest"
* }
*/
@Test
public void zimbraOddKeyValuePairsAnnotation() throws Exception {
Element jsonElem = JSONElement.mFactory.createElement(QName.get("key-value-pairs", "urn:zimbraTest"));
jsonElem.addKeyValuePair("key1", "value1", "oddElemName", "name");
jsonElem.addKeyValuePair("key2", "value2-a", "oddElemName", "name");
jsonElem.addKeyValuePair("key2", "value2-b", "oddElemName", "name");
List<Attr> attrs = Lists.newArrayList();
attrs.add(new Attr("key1", "value1"));
attrs.add(new Attr("key2", "value2-a"));
attrs.add(new Attr("key2", "value2-b"));
OddKeyValuePairsTester jaxb = new OddKeyValuePairsTester(attrs);
logDebug("XMLElement (from JAXB) ---> prettyPrint\n%1$s", JaxbUtil.jaxbToElement(jaxb, Element.XMLElement.mFactory, true, false).prettyPrint());
Element jsonJaxbElem = JacksonUtil.jaxbToJSONElement(jaxb);
logDebug("JSONElement (for comparison) ---> prettyPrint\n%1$s", jsonElem.prettyPrint());
String origJson = jsonJaxbElem.prettyPrint();
logDebug("JSONElement from JAXB ---> prettyPrint\n%1$s", origJson);
OddKeyValuePairsTester roundtripped = JaxbUtil.elementToJaxb(jsonJaxbElem, OddKeyValuePairsTester.class);
List<Element.KeyValuePair> elemKVPs = jsonJaxbElem.listKeyValuePairs();
Assert.assertEquals("elemKVP num", 3, elemKVPs.size());
Assert.assertEquals("prettyPrint", jsonElem.prettyPrint(), jsonJaxbElem.prettyPrint());
List<Attr> kvps = roundtripped.getAttrList();
Assert.assertEquals("roundtripped kvps num", 3, kvps.size());
jsonJaxbElem = JacksonUtil.jaxbToJSONElement(roundtripped);
String finalJson = jsonJaxbElem.prettyPrint();
if (!origJson.equals(finalJson)) {
logDebug("JSONElement from roundtripped JAXB ---> prettyPrint\n%1$s", jsonJaxbElem.prettyPrint());
Assert.assertEquals("roundtripped JSON pretty print", origJson, finalJson);
}
}
use of com.zimbra.soap.account.type.Attr in project zm-mailbox by Zimbra.
the class TestAuth method attrsReturnedInAuthResponse.
@Test
public void attrsReturnedInAuthResponse() throws Exception {
String ATTR_NAME = Provisioning.A_zimbraFeatureExternalFeedbackEnabled;
String ATTR_VALUE = ProvisioningConstants.TRUE;
Map<String, Object> attrs = Maps.newHashMap();
attrs.put(ATTR_NAME, ATTR_VALUE);
Account acct = provUtil.createAccount(genAcctNameLocalPart(), domain, attrs);
SoapHttpTransport transport = new SoapHttpTransport(TestUtil.getSoapUrl());
transport.setHttpDebugListener(new SoapDebugListener());
com.zimbra.soap.type.AccountSelector acctSel = new com.zimbra.soap.type.AccountSelector(com.zimbra.soap.type.AccountBy.name, acct.getName());
AuthRequest req = new AuthRequest(acctSel, "test123");
req.addAttr(ATTR_NAME);
AuthResponse resp = invokeJaxb(transport, req);
Set<String> result = Sets.newHashSet();
for (Attr attr : resp.getAttrs()) {
String attrName = attr.getName();
String attrValue = attr.getValue();
result.add(Verify.makeResultStr(attrName, attrValue));
}
Verify.verifyEquals(Sets.newHashSet(Verify.makeResultStr(ATTR_NAME, ATTR_VALUE)), result);
/*
* test the auth by auth toke npath
*/
String authTokenStr = resp.getAuthToken();
AuthToken authToken = new AuthToken(authTokenStr, Boolean.FALSE);
req = new AuthRequest();
req.setAuthToken(authToken);
req.addAttr(ATTR_NAME);
transport = new SoapHttpTransport(TestUtil.getSoapUrl());
transport.setHttpDebugListener(new SoapDebugListener());
resp = invokeJaxb(transport, req);
result = Sets.newHashSet();
for (Attr attr : resp.getAttrs()) {
String attrName = attr.getName();
String attrValue = attr.getValue();
result.add(Verify.makeResultStr(attrName, attrValue));
}
Verify.verifyEquals(Sets.newHashSet(Verify.makeResultStr(ATTR_NAME, ATTR_VALUE)), result);
}
Aggregations