decova-dotnet
Version:
This package provides fundumentals that a .net developer may miss while working with Typescript, whether they are missing functinalities or funcionalities provided in a non-elegant design in javascript. Bad naming, bad design of optional parameters, non-c
109 lines • 5.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("../src/index");
const chai_1 = require("chai");
describe("DateTime", () => {
it("Should parse correctly", () => {
const d = index_1.DateTime.Parse('2020-02-01');
(0, chai_1.expect)(d.Year).equals(2020);
(0, chai_1.expect)(d.Month).equals(2);
(0, chai_1.expect)(d.DayOfMonth).equals(1);
});
it("Should parse correctly with MM-dd-yyyy", () => {
const d = index_1.DateTime.Parse('02-01-2020', index_1.DateFormat.MM_dd_yyyy);
(0, chai_1.expect)(d.Year).equals(2020);
(0, chai_1.expect)(d.Month).equals(2);
(0, chai_1.expect)(d.DayOfMonth).equals(1);
});
it("Should parse correctly with dd-mm-yyyy", () => {
const d = index_1.DateTime.Parse('01-02-2020', index_1.DateFormat.dd_MM_yyy);
(0, chai_1.expect)(d.Year).equals(2020);
(0, chai_1.expect)(d.Month).equals(2);
(0, chai_1.expect)(d.DayOfMonth).equals(1);
});
it("Subtract() should work correctly", () => {
const d = index_1.DateTime.Parse('01-02-2020', index_1.DateFormat.dd_MM_yyy);
(0, chai_1.expect)(d.Month).equals(2);
(0, chai_1.expect)(d.DayOfMonth).equals(1);
(0, chai_1.expect)(d.SubtractDate(d).ticks).equals(index_1.TimeSpan.zero.ticks);
(0, chai_1.expect)(d.SubtractDate(d).ticks).equals(0);
});
it("AsLocalToUtc() should work correctly", () => {
const local = index_1.DateTime.Parse('2020-02-01');
const utc = local.AsLocalToUtc();
const diff = local.SubtractDate(utc);
(0, chai_1.expect)(diff.totalHours).equals(2);
});
it("AsUtcToLocal() should work correctly", () => {
const utc = index_1.DateTime.Parse('2020-02-01');
const local = utc.AsUtcToLocal();
const diff = local.SubtractDate(utc);
(0, chai_1.expect)(diff.totalHours).equals(2);
});
it("TryParse() should succeed", () => {
let result = { Result: index_1.DateTime.Min, ErrorMessage: "" };
(0, chai_1.expect)(index_1.DateTime.TryParse("2020/01*02 23@23#15.156", result))
.equals(true);
(0, chai_1.expect)(result.ErrorMessage).equals("");
(0, chai_1.expect)(result.Result.Ticks).equals(index_1.DateTime.Parse('2020-01-02 23:23:15.156').Ticks);
});
it("TryParse() should fail on month=15", () => {
let result = { Result: index_1.DateTime.Min, ErrorMessage: "" };
(0, chai_1.expect)(index_1.DateTime.TryParse("2020/15*02 23@23#15.156", result))
.equals(false);
});
it("TryParse() should fail on month=2 day=30", () => {
let result = { Result: index_1.DateTime.Min, ErrorMessage: "" };
(0, chai_1.expect)(index_1.DateTime.TryParse("2020-02-30 23:23:15.156", result))
.equals(false);
});
it("TryParse() should fail on month=4 day=31", () => {
let result = { Result: index_1.DateTime.Min, ErrorMessage: "" };
(0, chai_1.expect)(index_1.DateTime.TryParse("2020-04-31 23:23:15.156", result))
.equals(false);
});
it("Parse() throw on month=4 day=31", () => {
(0, chai_1.expect)(() => index_1.DateTime.Parse("2020-04-31 23:23:15.156"))
.throws();
});
it("Parse() should throw on month=15", () => {
(0, chai_1.expect)(() => { index_1.DateTime.Parse("2020/15*02 23@23#15.156"); })
.throws();
});
it("Parse() should throw on -- as a separator", () => {
(0, chai_1.expect)(() => index_1.DateTime.Parse("2020-04--31 23:23:15.156"))
.throws();
});
it("Parse() should succeed on extra spaces", () => {
(0, chai_1.expect)(index_1.DateTime.Parse("2020 - 04-30 23 :23:15.156").Ticks)
.greaterThan(0);
});
it("Parse() should throw on date more than maximum value", () => {
(0, chai_1.expect)(() => new index_1.DateTime(index_1.DateTime.Max.Ticks + 1))
.throws();
});
it("Parse() should throw on date more less than minimum value", () => {
(0, chai_1.expect)(() => new index_1.DateTime(index_1.DateTime.Min.Ticks - 1))
.throws();
});
it("Parse() should throw on adding to a max date", () => {
(0, chai_1.expect)(() => index_1.DateTime.Max.AddMilliseconds(1))
.throws();
});
it("Parse() should throw on subtracting from a min date", () => {
(0, chai_1.expect)(() => index_1.DateTime.Min.AddMilliseconds(-1))
.throws();
});
it("Equals() should work correctly", () => {
let random = index_1.DateTime.Now.Ticks;
(0, chai_1.expect)(new index_1.DateTime(random).Equals(new index_1.DateTime(random))).equals(true);
(0, chai_1.expect)(new index_1.DateTime(random).AddDays(2).Equals(new index_1.DateTime(random).AddDays(2))).equals(true);
(0, chai_1.expect)(new index_1.DateTime(random).Equals(new index_1.DateTime(random).AddMilliseconds(1))).equals(false);
});
it("TimeOfDay should return a valid TimeSpan", () => {
let d = index_1.DateTime.Parse('2020 02 02 15 32 05 123');
let time = index_1.TimeSpan.fromHours(15).addMinutes(32).addSeconds(5).addMilliSeconds(123);
(0, chai_1.expect)(d.TimeOfDay.ticks == time.ticks).equals(true);
});
});
//# sourceMappingURL=DateTime.spec.js.map