35b3c732创建于 2025年5月15日历史提交
package csv4cj

import std.unittest.*
import std.unittest.testmacro.*
import stdx.serialization.serialization.*
import stdx.encoding.json.*
import std.io.*
import std.collection.*

@Test
public class CSVRecordTest {
    @TestCase
    func testInit(): Unit {
        var csvRecord = CSVRecord()
        @Expect(csvRecord.getValues().size,0)

        let values = ["1", "a", "cangjie", "开发"]
        csvRecord = CSVRecord(values)
        @Expect(csvRecord.size(),4)

        let valueList = ArrayList<String>(values)
        csvRecord = CSVRecord(valueList)
        @Expect(csvRecord.get(0),"1")

        csvRecord = CSVRecord(1, values, "注释")
        @Expect(csvRecord.getComment().getOrThrow(),"注释")
    }


    @TestCase
    func testSerializeDeserialize(): Unit {
        var csvRecord = CSVRecord(1, ["1", "a", "cangjie", "开发"], "注释")
        let josnValue = csvRecord.serialize().toJson()

        @Expect(josnValue.asObject().get("recordNumber").getOrThrow().asInt().getValue(),1)
        @Expect(josnValue.asObject().get("comment").getOrThrow().asString().getValue(),"注释")
        @Expect(josnValue.asObject().get("values").getOrThrow().asArray().get(2).getOrThrow().asString().getValue(),"cangjie")

        let newRecord = CSVRecord.deserialize(DataModel.fromJson(josnValue))

        @Expect(newRecord.getComment().getOrThrow(),"注释")
        @Expect(newRecord.get(2),"cangjie")
        @Expect(newRecord.getRecordNumber(),1)
    }
}