|
| 1 | +package me.chanjar.weixin.cp.util.json; |
| 2 | + |
| 3 | +import me.chanjar.weixin.cp.bean.WxCpUser; |
| 4 | +import org.testng.annotations.Test; |
| 5 | + |
| 6 | +import static org.assertj.core.api.Assertions.assertThat; |
| 7 | + |
| 8 | +/** |
| 9 | + * <pre> |
| 10 | + * 企业微信(私有化版本getUser兼容测试) |
| 11 | + * </pre> |
| 12 | + * |
| 13 | + * @author 庄壮壮 |
| 14 | + * @since 2020-06-16 09:36 |
| 15 | + */ |
| 16 | +public class WxCpUserGsonAdapterForPrivatizedVersionTest { |
| 17 | + |
| 18 | + @Test |
| 19 | + public void testDeserialize() { |
| 20 | + final String userJson = "{\n" + |
| 21 | + " \"errcode\": 0,\n" + |
| 22 | + " \"errmsg\": \"ok\",\n" + |
| 23 | + " \"userid\": \"zhangsan\",\n" + |
| 24 | + " \"name\": \"李四\",\n" + |
| 25 | + " \"department\": [1, 2],\n" + |
| 26 | + " \"order\": [2, 10],\n" + |
| 27 | + " \"position\": \"后台工程师1\",\n" + |
| 28 | + " \"positions\": [\"后台工程师1\",\"后台工程师2\"],\n" + |
| 29 | + " \"mobile\": \"15913215421\",\n" + |
| 30 | + " \"hide_mobile\": 0,\n" + |
| 31 | + " \"gender\": \"1\",\n" + |
| 32 | + " \"email\": \"[email protected]\",\n" + |
| 33 | + " \"is_leader_in_dept\": [1, 0],\n" + |
| 34 | + " \"avatar\": \"http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0\",\n" + |
| 35 | + " \"telephone\": \"020-123456\",\n" + |
| 36 | + " \"english_name\": \"jackzhang\",\n" + |
| 37 | + " \"extattr\": {\"attrs\":[{\"name\":\"爱好\",\"value\":\"旅游\"},{\"name\":\"卡号\",\"value\":\"1234567234\"}]},\n" + |
| 38 | + " \"status\": 1,\n" + |
| 39 | + " \"enable\": 0,\n" + |
| 40 | + " \"qr_code\": \"https://wwlocal.qq.com/wework_admin/userQRCode?vcode=vc2140a8b3c6207c74&lvc=vcf6f1acfdc4b45088\"\n" + |
| 41 | + "}"; |
| 42 | + |
| 43 | + final WxCpUser user = WxCpUser.fromJson(userJson); |
| 44 | + assertThat(user).isNotNull(); |
| 45 | + |
| 46 | + // test order |
| 47 | + assertThat(user.getOrders()).isNotEmpty(); |
| 48 | + assertThat(user.getOrders().length).isEqualTo(2); |
| 49 | + assertThat(user.getOrders()[0]).isEqualTo(2); |
| 50 | + assertThat(user.getOrders()[1]).isEqualTo(10); |
| 51 | + |
| 52 | + // test english name |
| 53 | + assertThat(user.getEnglishName()).isEqualTo("jackzhang"); |
| 54 | + |
| 55 | + // test extattrs |
| 56 | + assertThat(user.getExtAttrs()).isNotEmpty(); |
| 57 | + final WxCpUser.Attr extraAttr1 = user.getExtAttrs().get(0); |
| 58 | + assertThat(extraAttr1.getName()).isEqualTo("爱好"); |
| 59 | + assertThat(extraAttr1.getTextValue()).isEqualTo("旅游"); |
| 60 | + final WxCpUser.Attr extraAttr2 = user.getExtAttrs().get(1); |
| 61 | + assertThat(extraAttr2.getName()).isEqualTo("卡号"); |
| 62 | + assertThat(extraAttr2.getTextValue()).isEqualTo("1234567234"); |
| 63 | + |
| 64 | + // test position |
| 65 | + assertThat(user.getPosition()).isEqualTo("后台工程师1"); |
| 66 | + // test positions |
| 67 | + assertThat(user.getPositions()).isNotEmpty(); |
| 68 | + assertThat(user.getPositions().length).isEqualTo(2); |
| 69 | + assertThat(user.getPositions()[0]).isEqualTo("后台工程师1"); |
| 70 | + assertThat(user.getPositions()[1]).isEqualTo("后台工程师2"); |
| 71 | + } |
| 72 | + |
| 73 | + @Test |
| 74 | + public void testSerialize() { |
| 75 | + WxCpUser user = new WxCpUser(); |
| 76 | + user.setOrders(new Integer[]{1, 2}); |
| 77 | + user.setPositions(new String[]{"后台工程师1", "后台工程师2"}); |
| 78 | + user.setEnglishName("jackson"); |
| 79 | + WxCpUser.Attr attr1 = new WxCpUser.Attr(); |
| 80 | + attr1.setName("爱好").setTextValue("旅游"); |
| 81 | + WxCpUser.Attr attr2 = new WxCpUser.Attr(); |
| 82 | + attr2.setName("卡号").setTextValue("1234567234"); |
| 83 | + |
| 84 | + user.addExtAttr(attr1); |
| 85 | + user.addExtAttr(attr2); |
| 86 | + |
| 87 | + assertThat(user.toJson()).isEqualTo("{\"order\":[1,2],\"positions\":[\"后台工程师1\",\"后台工程师2\"],\"english_name\":\"jackson\",\"extattr\":{\"attrs\":[{\"name\":\"爱好\",\"value\":\"旅游\"},{\"name\":\"卡号\",\"value\":\"1234567234\"}]},\"external_profile\":{}}"); |
| 88 | + } |
| 89 | +} |
0 commit comments