BiFunctionConvertTest

This commit is contained in:
redkale
2024-05-28 19:58:59 +08:00
parent 5f0b738264
commit 249468c601

View File

@@ -1,74 +1,74 @@
/*
*/
package org.redkale.test.convert;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.redkale.convert.ConvertField;
import org.redkale.convert.json.JsonConvert;
import org.redkale.util.Attribute;
/**
*
* @author zhangjx
*/
public class BiFunctionConvertTest {
public static class GamePlayer {
public int userid;
public String username;
public int[] cards;
}
public static class GameTable {
public int tableid;
public GamePlayer[] players;
}
@Test
public void run() throws Throwable {
GamePlayer player1 = new GamePlayer();
player1.userid = 1;
player1.username = "玩家1";
player1.cards = new int[] {11, 12, 13, 14, 15};
GamePlayer player2 = new GamePlayer();
player2.userid = 2;
player2.username = "玩家2";
player2.cards = new int[] {21, 22, 23, 24, 25};
GamePlayer player3 = new GamePlayer();
player3.userid = 3;
player3.username = "玩家3";
player3.cards = new int[] {31, 32, 33, 34, 35};
GameTable table = new GameTable();
table.tableid = 100;
table.players = new GamePlayer[] {player1, player2, player3};
JsonConvert convert1 = JsonConvert.root();
System.out.println(convert1.convertTo(table));
JsonConvert convert2 = convert1.newConvert(
(Attribute t, Object u) -> { // 玩家3 不输出cards字段
if (t.field().equals("cards") && u instanceof GamePlayer) {
int userid = ((GamePlayer) u).userid;
if (userid == 3) { // 玩家3的cards不输出
return null;
}
return t.get(u);
}
return t.get(u);
},
(Object u) -> table != u ? null : ConvertField.ofArray("extcol1", 30, "extcol2", "扩展字段值"));
System.out.println(convert2.convertTo(table));
Assertions.assertEquals(
"{\"players\":[{\"cards\":[11,12,13,14,15],\"userid\":1,\"username\":\"玩家1\"},"
+ "{\"cards\":[21,22,23,24,25],\"userid\":2,\"username\":\"玩家2\"},"
+ "{\"userid\":3,\"username\":\"玩家3\"}],"
+ "\"tableid\":100,\"extcol1\":30,\"extcol2\":\"扩展字段值\"}",
convert2.convertTo(table));
}
}
///*
//
//*/
//
//package org.redkale.test.convert;
//
//import org.junit.jupiter.api.Assertions;
//import org.junit.jupiter.api.Test;
//import org.redkale.convert.ConvertField;
//import org.redkale.convert.json.JsonConvert;
//import org.redkale.util.Attribute;
//
///**
// *
// * @author zhangjx
// */
//public class BiFunctionConvertTest {
//
// public static class GamePlayer {
//
// public int userid;
//
// public String username;
//
// public int[] cards;
// }
//
// public static class GameTable {
//
// public int tableid;
//
// public GamePlayer[] players;
// }
//
// @Test
// public void run() throws Throwable {
// GamePlayer player1 = new GamePlayer();
// player1.userid = 1;
// player1.username = "玩家1";
// player1.cards = new int[] {11, 12, 13, 14, 15};
// GamePlayer player2 = new GamePlayer();
// player2.userid = 2;
// player2.username = "玩家2";
// player2.cards = new int[] {21, 22, 23, 24, 25};
// GamePlayer player3 = new GamePlayer();
// player3.userid = 3;
// player3.username = "玩家3";
// player3.cards = new int[] {31, 32, 33, 34, 35};
// GameTable table = new GameTable();
// table.tableid = 100;
// table.players = new GamePlayer[] {player1, player2, player3};
// JsonConvert convert1 = JsonConvert.root();
// System.out.println(convert1.convertTo(table));
// JsonConvert convert2 = convert1.newConvert(
// (Attribute t, Object u) -> { // 玩家3 不输出cards字段
// if (t.field().equals("cards") && u instanceof GamePlayer) {
// int userid = ((GamePlayer) u).userid;
// if (userid == 3) { // 玩家3的cards不输出
// return null;
// }
// return t.get(u);
// }
// return t.get(u);
// },
// (Object u) -> table != u ? null : ConvertField.ofArray("extcol1", 30, "extcol2", "扩展字段值"));
// System.out.println(convert2.convertTo(table));
// Assertions.assertEquals(
// "{\"players\":[{\"cards\":[11,12,13,14,15],\"userid\":1,\"username\":\"玩家1\"},"
// + "{\"cards\":[21,22,23,24,25],\"userid\":2,\"username\":\"玩家2\"},"
// + "{\"userid\":3,\"username\":\"玩家3\"}],"
// + "\"tableid\":100,\"extcol1\":30,\"extcol2\":\"扩展字段值\"}",
// convert2.convertTo(table));
// }
//}