|
|
|
@ -2238,46 +2238,49 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest { |
|
|
|
|
|
|
|
@Test |
|
|
|
public void tbDateFunction_Test() throws ExecutionException, InterruptedException { |
|
|
|
String stringDateUTC = "2024-01-01T10:00:00.00Z"; |
|
|
|
TbDate d = new TbDate(stringDateUTC); |
|
|
|
|
|
|
|
msgStr = "{}"; |
|
|
|
decoderStr = String.format(""" |
|
|
|
var d = new Date(2024, 1, 1, 10, 0, 0, 0); // TZ => "UTC"
|
|
|
|
var dIsoY1 = d.toISOString(); // return 2024-01-01T08:00:00Z
|
|
|
|
var d = new Date("%s"); // TZ => "UTC"
|
|
|
|
var dIsoY1 = d.toISOString(); // return 2024-01-01T10:00:00Z
|
|
|
|
d.addYears(1); |
|
|
|
var dIsoY2 = d.toISOString(); // return 2025-01-01T08:00:00Z
|
|
|
|
var dIsoY2 = d.toISOString(); // return 2025-01-01T10:00:00Z
|
|
|
|
d.addYears(-2); |
|
|
|
var dIsoY3 = d.toISOString(); // return 2023-01-01T08:00:00Z
|
|
|
|
var dIsoY3 = d.toISOString(); // return 2023-01-01T10:00:00Z
|
|
|
|
d.addMonths(2); |
|
|
|
var dIsoM1 = d.toISOString(); // return 2023-03-01T08:00:00Z
|
|
|
|
var dIsoM1 = d.toISOString(); // return 2023-03-01T10:00:00Z
|
|
|
|
d.addMonths(10); |
|
|
|
var dIsoM2 = d.toISOString(); // return 2024-01-01T08:00:00Z
|
|
|
|
var dIsoM2 = d.toISOString(); // return 2024-01-01T10:00:00Z
|
|
|
|
d.addMonths(-13); |
|
|
|
var dIsoM3 = d.toISOString(); // return 2022-12-01T08:00:00Z
|
|
|
|
var dIsoM3 = d.toISOString(); // return 2022-12-01T10:00:00Z
|
|
|
|
d.addWeeks(4); |
|
|
|
var dIsoW1 = d.toISOString(); // return 2022-12-29T08:00:00Z
|
|
|
|
var dIsoW1 = d.toISOString(); // return 2022-12-29T10:00:00Z
|
|
|
|
d.addWeeks(-5); |
|
|
|
var dIsoW2 = d.toISOString(); // return 2022-11-24T08:00:00Z
|
|
|
|
var dIsoW2 = d.toISOString(); // return 2022-11-24T10:00:00Z
|
|
|
|
d.addDays(6); |
|
|
|
var dIsoD1 = d.toISOString(); // return 2022-11-30T08:00:00Z
|
|
|
|
var dIsoD1 = d.toISOString(); // return 2022-11-30T10:00:00Z
|
|
|
|
d.addDays(45); |
|
|
|
var dIsoD2 = d.toISOString(); // return 2023-01-14T08:00:00Z
|
|
|
|
var dIsoD2 = d.toISOString(); // return 2023-01-14T10:00:00Z
|
|
|
|
d.addDays(-50); |
|
|
|
var dIsoD3 = d.toISOString(); // return 2022-11-25T08:00:00Z
|
|
|
|
var dIsoD3 = d.toISOString(); // return 2022-11-25T10:00:00Z
|
|
|
|
d.addHours(23); |
|
|
|
var dIsoH1 = d.toISOString(); // return 2022-11-26T07:00:00Z
|
|
|
|
var dIsoH1 = d.toISOString(); // return 2022-11-26T09:00:00Z
|
|
|
|
d.addHours(-47); |
|
|
|
var dIsoH2 = d.toISOString(); // return 2022-11-24T08:00:00Z
|
|
|
|
var dIsoH2 = d.toISOString(); // return 2022-11-24T10:00:00Z
|
|
|
|
d.addMinutes(59); |
|
|
|
var dIsoMin1 = d.toISOString(); // return 2022-11-24T08:59:00Z
|
|
|
|
var dIsoMin1 = d.toISOString(); // return 2022-11-24T10:59:00Z
|
|
|
|
d.addMinutes(-60); |
|
|
|
var dIsoMin2 = d.toISOString(); // return 2022-11-24T07:59:00Z
|
|
|
|
var dIsoMin2 = d.toISOString(); // return 2022-11-24T09:59:00Z
|
|
|
|
d.addSeconds(59); |
|
|
|
var dIsoS1 = d.toISOString(); // return 2022-11-24T07:59:59Z
|
|
|
|
var dIsoS1 = d.toISOString(); // return 2022-11-24T09:59:59Z
|
|
|
|
d.addSeconds(-60); |
|
|
|
var dIsoS2 = d.toISOString(); // return 2022-11-24T07:58:59Z
|
|
|
|
var dIsoS2 = d.toISOString(); // return 2022-11-24T09:58:59Z
|
|
|
|
d.addNanos(999999); |
|
|
|
var dIsoN1 = d.toISOString(); // return 2022-11-24T07:58:59.000999999Z
|
|
|
|
var dIsoN1 = d.toISOString(); // return 2022-11-24T09:58:59.000999999Z
|
|
|
|
d.addNanos(-1000000); |
|
|
|
var dIsoN2 = d.toISOString(); // return 2022-11-24T07:58:58.999999999Z
|
|
|
|
var dIsoN2 = d.toISOString(); // return 2022-11-24T09:58:58.999999999Z
|
|
|
|
return { |
|
|
|
"dIsoY1": dIsoY1, |
|
|
|
"dIsoY2": dIsoY2, |
|
|
|
@ -2299,27 +2302,45 @@ class TbelInvokeDocsIoTest extends AbstractTbelInvokeTest { |
|
|
|
"dIsoN1": dIsoN1, |
|
|
|
"dIsoN2": dIsoN2 |
|
|
|
} |
|
|
|
"""); |
|
|
|
""", stringDateUTC); |
|
|
|
LinkedHashMap<String, Object> expected = new LinkedHashMap<>(); |
|
|
|
expected.put("dIsoY1", "2024-01-01T08:00:00Z"); |
|
|
|
expected.put("dIsoY2", "2025-01-01T08:00:00Z"); |
|
|
|
expected.put("dIsoY3", "2023-01-01T08:00:00Z"); |
|
|
|
expected.put("dIsoM1", "2023-03-01T08:00:00Z"); |
|
|
|
expected.put("dIsoM2", "2024-01-01T08:00:00Z"); |
|
|
|
expected.put("dIsoM3", "2022-12-01T08:00:00Z"); |
|
|
|
expected.put("dIsoW1", "2022-12-29T08:00:00Z"); |
|
|
|
expected.put("dIsoW2", "2022-11-24T08:00:00Z"); |
|
|
|
expected.put("dIsoD1", "2022-11-30T08:00:00Z"); |
|
|
|
expected.put("dIsoD2", "2023-01-14T08:00:00Z"); |
|
|
|
expected.put("dIsoD3", "2022-11-25T08:00:00Z"); |
|
|
|
expected.put("dIsoH1", "2022-11-26T07:00:00Z"); |
|
|
|
expected.put("dIsoH2", "2022-11-24T08:00:00Z"); |
|
|
|
expected.put("dIsoMin1", "2022-11-24T08:59:00Z"); |
|
|
|
expected.put("dIsoMin2", "2022-11-24T07:59:00Z"); |
|
|
|
expected.put("dIsoS1", "2022-11-24T07:59:59Z"); |
|
|
|
expected.put("dIsoS2", "2022-11-24T07:58:59Z"); |
|
|
|
expected.put("dIsoN1", "2022-11-24T07:58:59.000999999Z"); |
|
|
|
expected.put("dIsoN2", "2022-11-24T07:58:58.999999999Z"); |
|
|
|
expected.put("dIsoY1", d.toISOString()); |
|
|
|
d.addYears(1); |
|
|
|
expected.put("dIsoY2", d.toISOString()); |
|
|
|
d.addYears(-2); |
|
|
|
expected.put("dIsoY3", d.toISOString()); |
|
|
|
d.addMonths(2); |
|
|
|
expected.put("dIsoM1", d.toISOString()); |
|
|
|
d.addMonths(10); |
|
|
|
expected.put("dIsoM2", d.toISOString()); |
|
|
|
d.addMonths(-13); |
|
|
|
expected.put("dIsoM3", d.toISOString()); |
|
|
|
d.addWeeks(4); |
|
|
|
expected.put("dIsoW1", d.toISOString()); |
|
|
|
d.addWeeks(-5); |
|
|
|
expected.put("dIsoW2", d.toISOString()); |
|
|
|
d.addDays(6); |
|
|
|
expected.put("dIsoD1", d.toISOString()); |
|
|
|
d.addDays(45); |
|
|
|
expected.put("dIsoD2", d.toISOString()); |
|
|
|
d.addDays(-50); |
|
|
|
expected.put("dIsoD3", d.toISOString()); |
|
|
|
d.addHours(23); |
|
|
|
expected.put("dIsoH1", d.toISOString()); |
|
|
|
d.addHours(-47); |
|
|
|
expected.put("dIsoH2", d.toISOString()); |
|
|
|
d.addMinutes(59); |
|
|
|
expected.put("dIsoMin1", d.toISOString()); |
|
|
|
d.addMinutes(-60); |
|
|
|
expected.put("dIsoMin2", d.toISOString()); |
|
|
|
d.addSeconds(59); |
|
|
|
expected.put("dIsoS1", d.toISOString()); |
|
|
|
d.addSeconds(-60); |
|
|
|
expected.put("dIsoS2", d.toISOString()); |
|
|
|
d.addNanos(999999); |
|
|
|
expected.put("dIsoN1", d.toISOString()); |
|
|
|
d.addNanos(-1000000); |
|
|
|
expected.put("dIsoN2", d.toISOString()); |
|
|
|
Object actual = invokeScript(evalScript(decoderStr), msgStr); |
|
|
|
assertEquals(expected, actual); |
|
|
|
} |
|
|
|
|