UNPKG

decova-dotnet-developer

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

108 lines 5.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const index_1 = require("../src/index"); describe("DateTime", () => { it("Should parse correctly", () => { const d = index_1.DateTime.Parse('2020-02-01'); expect(d.Year).toEqual(2020); expect(d.Month).toEqual(2); expect(d.DayOfMonth).toEqual(1); }); it("Should parse correctly with MM-dd-yyyy", () => { const d = index_1.DateTime.Parse('02-01-2020', index_1.DateFormat.MM_dd_yyyy); expect(d.Year).toEqual(2020); expect(d.Month).toEqual(2); expect(d.DayOfMonth).toEqual(1); }); it("Should parse correctly with dd-mm-yyyy", () => { const d = index_1.DateTime.Parse('01-02-2020', index_1.DateFormat.dd_MM_yyy); expect(d.Year).toEqual(2020); expect(d.Month).toEqual(2); expect(d.DayOfMonth).toEqual(1); }); it("Subtract() should work correctly", () => { const d = index_1.DateTime.Parse('01-02-2020', index_1.DateFormat.dd_MM_yyy); expect(d.Month).toEqual(2); expect(d.DayOfMonth).toEqual(1); expect(d.SubtractDate(d).Ticks).toEqual(index_1.TimeSpan.Zero.Ticks); expect(d.SubtractDate(d).Ticks).toEqual(0); }); it("AsLocalToUtc() should work correctly", () => { const local = index_1.DateTime.Parse('2020-02-01'); const utc = local.AsLocalToUtc(); const diff = local.SubtractDate(utc); expect(diff.TotalHours).toEqual(2); }); it("AsUtcToLocal() should work correctly", () => { const utc = index_1.DateTime.Parse('2020-02-01'); const local = utc.AsUtcToLocal(); const diff = local.SubtractDate(utc); expect(diff.TotalHours).toEqual(2); }); it("TryParse() should succeed", () => { let result = { Result: index_1.DateTime.Min, ErrorMessage: "" }; expect(index_1.DateTime.TryParse("2020/01*02 23@23#15.156", result)) .toEqual(true); expect(result.ErrorMessage).toEqual(""); expect(result.Result.Ticks).toEqual(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: "" }; expect(index_1.DateTime.TryParse("2020/15*02 23@23#15.156", result)) .toEqual(false); }); it("TryParse() should fail on month=2 day=30", () => { let result = { Result: index_1.DateTime.Min, ErrorMessage: "" }; expect(index_1.DateTime.TryParse("2020-02-30 23:23:15.156", result)) .toEqual(false); }); it("TryParse() should fail on month=4 day=31", () => { let result = { Result: index_1.DateTime.Min, ErrorMessage: "" }; expect(index_1.DateTime.TryParse("2020-04-31 23:23:15.156", result)) .toEqual(false); }); it("Parse() throw on month=4 day=31", () => { expect(() => index_1.DateTime.Parse("2020-04-31 23:23:15.156")) .toThrow(); }); it("Parse() should throw on month=15", () => { expect(() => { index_1.DateTime.Parse("2020/15*02 23@23#15.156"); }) .toThrowError(); }); it("Parse() should throw on -- as a separator", () => { expect(() => index_1.DateTime.Parse("2020-04--31 23:23:15.156")) .toThrow(); }); it("Parse() should succeed on extra spaces", () => { expect(index_1.DateTime.Parse("2020 - 04-30 23 :23:15.156").Ticks) .toBeGreaterThan(0); }); it("Parse() should throw on date more than maximum value", () => { expect(() => new index_1.DateTime(index_1.DateTime.Max.Ticks + 1)) .toThrow(); }); it("Parse() should throw on date more less than minimum value", () => { expect(() => new index_1.DateTime(index_1.DateTime.Min.Ticks - 1)) .toThrow(); }); it("Parse() should throw on adding to a max date", () => { expect(() => index_1.DateTime.Max.AddMilliseconds(1)) .toThrow(); }); it("Parse() should throw on subtracting from a min date", () => { expect(() => index_1.DateTime.Min.AddMilliseconds(-1)) .toThrow(); }); it("Equals() should work correctly", () => { let random = index_1.DateTime.Now.Ticks; expect(new index_1.DateTime(random).Equals(new index_1.DateTime(random))).toEqual(true); expect(new index_1.DateTime(random).AddDays(2).Equals(new index_1.DateTime(random).AddDays(2))).toEqual(true); expect(new index_1.DateTime(random).Equals(new index_1.DateTime(random).AddMilliseconds(1))).toEqual(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); expect(d.TimeOfDay.Ticks == time.Ticks).toEqual(true); }); }); //# sourceMappingURL=DateTime.spec.js.map