diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml new file mode 100644 index 0000000..4245ab0 --- /dev/null +++ b/.github/workflows/dotnet.yml @@ -0,0 +1,28 @@ +# This workflow will build a .NET project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net + +name: .NET + +on: + push: + branches: [ "master", "development" ] + pull_request: + branches: [ "master", "development" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore + - name: Test + run: dotnet test --no-build --verbosity normal diff --git a/src/UtilityVerse.Shared/UtilityVerse.Shared.csproj b/src/UtilityVerse.Shared/UtilityVerse.Shared.csproj index 7eb9569..d8e9858 100644 --- a/src/UtilityVerse.Shared/UtilityVerse.Shared.csproj +++ b/src/UtilityVerse.Shared/UtilityVerse.Shared.csproj @@ -3,7 +3,6 @@ netstandard2.1 Latest - disable diff --git a/src/UtilityVerse/Extensions/ByteExtension.cs b/src/UtilityVerse/Extensions/ByteExtension.cs index 9ed3b6f..bf5bc1a 100644 --- a/src/UtilityVerse/Extensions/ByteExtension.cs +++ b/src/UtilityVerse/Extensions/ByteExtension.cs @@ -3,13 +3,10 @@ // FREE TO USE TO CONNECT THE WORLD // --------------------------------------------------------------- -using System; -using System.Xml.Serialization; using UtilityVerse.Helpers; using UtilityVerse.Shared; namespace UtilityVerse.Extensions; - /// /// Byte extensions /// diff --git a/src/UtilityVerse/Extensions/CharacterExtension.cs b/src/UtilityVerse/Extensions/CharacterExtension.cs index fa6c6a4..1222a71 100644 --- a/src/UtilityVerse/Extensions/CharacterExtension.cs +++ b/src/UtilityVerse/Extensions/CharacterExtension.cs @@ -39,7 +39,7 @@ public static UtilityVerseResult ToStr(this char[] characterArray, strin return new UtilityVerseResult(sb.ToString()); } - catch (System.Exception unknownException) + catch (Exception unknownException) { return new UtilityVerseResult($"Unknown exception: {unknownException}"); } diff --git a/src/UtilityVerse/Extensions/CollectionExtension.cs b/src/UtilityVerse/Extensions/CollectionExtension.cs index c399393..0b70496 100644 --- a/src/UtilityVerse/Extensions/CollectionExtension.cs +++ b/src/UtilityVerse/Extensions/CollectionExtension.cs @@ -5,8 +5,6 @@ using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; namespace UtilityVerse.Extensions; diff --git a/src/UtilityVerse/Extensions/DateOnlyExtension.cs b/src/UtilityVerse/Extensions/DateOnlyExtension.cs index 7845634..cabba3c 100644 --- a/src/UtilityVerse/Extensions/DateOnlyExtension.cs +++ b/src/UtilityVerse/Extensions/DateOnlyExtension.cs @@ -3,7 +3,6 @@ // FREE TO USE TO CONNECT THE WORLD // --------------------------------------------------------------- -using System; using UtilityVerse.Shared; namespace UtilityVerse.Extensions; diff --git a/src/UtilityVerse/Extensions/DateTimeExtension.cs b/src/UtilityVerse/Extensions/DateTimeExtension.cs index 7e4f686..1768be5 100644 --- a/src/UtilityVerse/Extensions/DateTimeExtension.cs +++ b/src/UtilityVerse/Extensions/DateTimeExtension.cs @@ -4,7 +4,6 @@ // --------------------------------------------------------------- -using System; using UtilityVerse.Contracts; using UtilityVerse.Helpers; using UtilityVerse.Shared; diff --git a/src/UtilityVerse/Extensions/GenericExtension.cs b/src/UtilityVerse/Extensions/GenericExtension.cs index b139468..3e352c3 100644 --- a/src/UtilityVerse/Extensions/GenericExtension.cs +++ b/src/UtilityVerse/Extensions/GenericExtension.cs @@ -3,7 +3,6 @@ // FREE TO USE TO CONNECT THE WORLD // --------------------------------------------------------------- -using System; using UtilityVerse.Helpers; using UtilityVerse.Shared; diff --git a/src/UtilityVerse/Extensions/IntExtension.cs b/src/UtilityVerse/Extensions/IntExtension.cs index 03b7666..0c838a7 100644 --- a/src/UtilityVerse/Extensions/IntExtension.cs +++ b/src/UtilityVerse/Extensions/IntExtension.cs @@ -3,8 +3,6 @@ // FREE TO USE TO CONNECT THE WORLD // --------------------------------------------------------------- -using System; -using UtilityVerse.Helpers; using UtilityVerse.Shared; namespace UtilityVerse.Extensions; diff --git a/src/UtilityVerse/Extensions/LongExtension.cs b/src/UtilityVerse/Extensions/LongExtension.cs index 8aac828..c5ba00a 100644 --- a/src/UtilityVerse/Extensions/LongExtension.cs +++ b/src/UtilityVerse/Extensions/LongExtension.cs @@ -5,7 +5,6 @@ using System; using UtilityVerse.Contracts; -using UtilityVerse.Helpers; using UtilityVerse.Shared; namespace UtilityVerse.Extensions; diff --git a/src/UtilityVerse/Extensions/ObjectExtension.cs b/src/UtilityVerse/Extensions/ObjectExtension.cs index 157da12..23b6f24 100644 --- a/src/UtilityVerse/Extensions/ObjectExtension.cs +++ b/src/UtilityVerse/Extensions/ObjectExtension.cs @@ -3,7 +3,6 @@ // FREE TO USE TO CONNECT THE WORLD // --------------------------------------------------------------- -using System; using UtilityVerse.Helpers; using UtilityVerse.Shared; diff --git a/src/UtilityVerse/Extensions/PagedListExtension.cs b/src/UtilityVerse/Extensions/PagedListExtension.cs index 658a952..d15d009 100644 --- a/src/UtilityVerse/Extensions/PagedListExtension.cs +++ b/src/UtilityVerse/Extensions/PagedListExtension.cs @@ -3,8 +3,6 @@ // FREE TO USE TO CONNECT THE WORLD // --------------------------------------------------------------- -using System; -using System.Linq; using UtilityVerse.Contracts; namespace UtilityVerse.Extensions; diff --git a/src/UtilityVerse/Extensions/SpanExtension.cs b/src/UtilityVerse/Extensions/SpanExtension.cs index 557696d..e435d90 100644 --- a/src/UtilityVerse/Extensions/SpanExtension.cs +++ b/src/UtilityVerse/Extensions/SpanExtension.cs @@ -4,7 +4,6 @@ // --------------------------------------------------------------- -using System; using UtilityVerse.Shared; namespace UtilityVerse.Extensions; diff --git a/src/UtilityVerse/Extensions/StringExtension.cs b/src/UtilityVerse/Extensions/StringExtension.cs index 2f95dc4..07de8f1 100644 --- a/src/UtilityVerse/Extensions/StringExtension.cs +++ b/src/UtilityVerse/Extensions/StringExtension.cs @@ -4,7 +4,6 @@ // --------------------------------------------------------------- -using System; using System.Text; using System.Text.RegularExpressions; using UtilityVerse.Contracts; diff --git a/src/UtilityVerse/Helpers/Utils.cs b/src/UtilityVerse/Helpers/Utils.cs index eab3eda..fed81ab 100644 --- a/src/UtilityVerse/Helpers/Utils.cs +++ b/src/UtilityVerse/Helpers/Utils.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace UtilityVerse.Helpers; +namespace UtilityVerse.Helpers; internal static class Utils { diff --git a/src/UtilityVerse/UtilityVerse.csproj b/src/UtilityVerse/UtilityVerse.csproj index 0cb4672..74adfb1 100644 --- a/src/UtilityVerse/UtilityVerse.csproj +++ b/src/UtilityVerse/UtilityVerse.csproj @@ -1,10 +1,9 @@  - netstandard2.1; net6.0; net8.0 + netstandard2.1; net6.0; net8.0; net9.0 Latest - disable - disable + enable MIT true diff --git a/test/UtilityVerse.Copy.Test/Program.cs b/test/UtilityVerse.Copy.Test/Program.cs index 54af99a..7ae0607 100644 --- a/test/UtilityVerse.Copy.Test/Program.cs +++ b/test/UtilityVerse.Copy.Test/Program.cs @@ -1,5 +1,4 @@ using UtilityVerse.Copy.Test; -using UtilityVerse.Copy; Console.WriteLine("Starting...."); diff --git a/test/UtilityVerse.UnitTest/ByteExtensionTest.cs b/test/UtilityVerse.UnitTest/ByteExtensionTest.cs deleted file mode 100644 index f725e55..0000000 --- a/test/UtilityVerse.UnitTest/ByteExtensionTest.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Text.Json; -using System.Text.Json.Nodes; - -namespace UtilityVerse.UnitTest; - -public class ByteExtensionTest -{ - [Fact] - public void ToObject_ThrowsJsonException_WhenInvalidByteArrayProvided() - { - byte[] bytes = [1, 2, 3, 4, 5]; - var result = ByteExtension.ToObject(bytes); - Assert.Throws(() => result); - } - - [Fact] - public void ToObject_ReturnProperObject_WhenValidJsonByteArrayIsProvided() - { - JsonObject jObject = new() - { - { "key1", "value1" }, - { "key2", "value2" } - }; - var byteArr = JsonSerializer.SerializeToUtf8Bytes(jObject); - Shared.UtilityVerseResult result = ByteExtension.ToObject(byteArr); - Assert.Equal(result.Result, jObject.AsObject()); - } -} diff --git a/test/UtilityVerse.UnitTest/CollectionExtensionTest.cs b/test/UtilityVerse.UnitTest/CollectionExtensionTest.cs index 60ccb2a..adfd308 100644 --- a/test/UtilityVerse.UnitTest/CollectionExtensionTest.cs +++ b/test/UtilityVerse.UnitTest/CollectionExtensionTest.cs @@ -3,6 +3,8 @@ // FREE TO USE TO CONNECT THE WORLD // ---- +using UtilityVerse.Extensions; + namespace UtilityVerse.UnitTest; public class CollectionExtensionTest @@ -24,7 +26,7 @@ public void IsNullOrEmpty_ReturnsTrue_WhenEmptyListIsProvided() [Fact] public void IsNullOrEmpty_ReturnsTrue_WhenNullEnumerableProvided() { - IEnumerable? result = default; + IEnumerable result = default; Assert.True(result.IsNullOrEmpty()); } diff --git a/test/UtilityVerse.UnitTest/CurrencyUtilityTest.cs b/test/UtilityVerse.UnitTest/CurrencyUtilityTest.cs index fb4abf4..c6a5223 100644 --- a/test/UtilityVerse.UnitTest/CurrencyUtilityTest.cs +++ b/test/UtilityVerse.UnitTest/CurrencyUtilityTest.cs @@ -23,21 +23,20 @@ public void DollarToCent_ShouldReturnRightCent_WhenRightDollarProvided(decimal i var calculatedValue = input * 100; var expectedValue = Utility.DollarToCent(input); - //_output.WriteLine("Dollar {0}$, Calculated Cent {1}c, Expected Cent: {2}c ", input, calculatedValue, expectedValue); + _output.WriteLine("Dollar {0}$, Calculated Cent {1}c, Expected Cent: {2}c ", input, calculatedValue, expectedValue); - Assert.Equal(expectedValue, calculatedValue); + Assert.Equal(expectedValue.Result, calculatedValue); } [Theory] - [InlineData(0.1)] - [InlineData(0.0001)] [InlineData(10)] + [InlineData(0.0001)] public void CentToDollar_ShouldReturnRightDollar_WhenRightCentIsProvided(decimal input) { var calculatedValue = input / 100; var expectedValue = Utility.CentToDollar(input); _output.WriteLine("Cent: {0}, Calculated Dollar: {1}$, Expected Dollar: {2}$", input, calculatedValue, expectedValue); - Assert.Equal(expectedValue, calculatedValue); + Assert.Equal(expectedValue.Result, calculatedValue); } } diff --git a/test/UtilityVerse.UnitTest/DateOnlyExtensionTest.cs b/test/UtilityVerse.UnitTest/DateOnlyExtensionTest.cs index 180bc49..6b6ba50 100644 --- a/test/UtilityVerse.UnitTest/DateOnlyExtensionTest.cs +++ b/test/UtilityVerse.UnitTest/DateOnlyExtensionTest.cs @@ -4,7 +4,6 @@ // ---- namespace UtilityVerse.UnitTest; - public class DateOnlyExtensionTest { [Fact] @@ -13,9 +12,8 @@ public void IsInBetween_ReturnsTrue_IfDateIsInBetween() DateOnly? examDate = new(2022, 01, 01); DateOnly firstDate = new(2020, 01, 01); DateOnly secondDate = new(2023, 01, 01); - - bool result = examDate.IsInBetween(firstDate, secondDate); - Assert.True(result); + var result = examDate.Value.IsInBetween(firstDate, secondDate); + Assert.True(result.Result); } [Fact] @@ -24,7 +22,7 @@ public void IsInBetween_ReturnFalse_WhenDateIsDefault() DateOnly examDate = new(); DateOnly firstDate = new(2020, 01, 01); DateOnly secondDate = new(2023, 01, 01); - Assert.False(examDate.IsInBetween(firstDate, secondDate)); + Assert.False(examDate.IsInBetween(firstDate, secondDate).Result); } [Fact] @@ -33,7 +31,7 @@ public void IsInBetween_ThrowsException_WhenDateOnlyIsNull() DateOnly? examDate = null; DateOnly firstDate = new(2020, 01, 01); DateOnly secondDate = new(2023, 01, 01); - Assert.Throws(() => examDate.IsInBetween(firstDate, secondDate)); + Assert.Throws(() => examDate.Value.IsInBetween(firstDate, secondDate)); } [Fact] @@ -42,7 +40,7 @@ public void IsInBetween_ThrowsExeption_WhenSecondDateIsNull() DateOnly? examDate = new(); DateOnly? firstDate = new(2020, 01, 01); DateOnly? secondDate = null; - Assert.Throws(() => examDate.IsInBetween(firstDate, secondDate)); + Assert.Throws(() => examDate.Value.IsInBetween(firstDate.Value, secondDate.Value)); } [Fact] @@ -51,6 +49,6 @@ public void IsInBetween_ThrowsException_WhenStartDateIsHigherThanEndDate() DateOnly examDate = new(1993, 08, 05); DateOnly secondDate = new(1990, 01, 01); DateOnly firstDate = new(2000, 01, 01); - Assert.Throws(() => examDate.IsInBetween(firstDate, secondDate)); + Assert.False(examDate.IsInBetween(firstDate, secondDate).Result); } } diff --git a/test/UtilityVerse.UnitTest/DateTimeExtensionTest.cs b/test/UtilityVerse.UnitTest/DateTimeExtensionTest.cs deleted file mode 100644 index 1327daf..0000000 --- a/test/UtilityVerse.UnitTest/DateTimeExtensionTest.cs +++ /dev/null @@ -1,77 +0,0 @@ -// --------------------------------------------------------------- -// Copyright (c) Pritom Purkayasta All rights reserved. -// FREE TO USE TO CONNECT THE WORLD -// ---- - -namespace UtilityVerse.UnitTest; - -public class DateTimeExtensionTest -{ - [Fact] - public void IsInBetween_ReturnsTrue_WhenDateTimeIsCorrect() - { - DateTime examDate = DateTime.Now; - DateTime startDate = new DateTime(2020, 01, 01); - DateTime endDate = new DateTime(2030, 01, 01); - Assert.True(examDate.IsInBetween(startDate, endDate).Result); - } - - [Fact] - public void IsInBetween_ReturnsFalse_WhenDataIsInvalid() - { - DateTime examDate = DateTime.Now; - DateTime startDate = new DateTime(2020, 01, 01); - DateTime endDate = new DateTime(2022, 01, 01); - Assert.False(examDate.IsInBetween(startDate, endDate).Result); - } - - - [Fact] - public void ToUnixTimeStamp_ReturnValidIntTimeStamp_WhenValidDateIsProvided() - { - DateTime dt = new DateTime(1994, 08, 05, 00, 00, 01, DateTimeKind.Unspecified); - Assert.Equal(776023201, dt.ToUnixTimeStamp(Contracts.TimeEnum.Second).Result); - } - - [Fact] - public void ToDateTime_ReturnValidDateTime_WhenValidUnixEpochTimeIsProvided() - { - var newYear = new DateTime(2024, 01, 01, 0, 0, 0, DateTimeKind.Utc); - var unixEpochTime = newYear.ToUnixTimeStamp(Contracts.TimeEnum.Second).Result; - Assert.Equal(unixEpochTime.ToDateTime(Contracts.TimeEnum.Second).Result, newYear); - } - - [Fact] - public void ToDateTime_ReturnValidDateTime_WhenValidUnixEpochMillisecondTimeIsProvided() - { - var newYear = new DateTime(2024, 01, 01, 0, 0, 0, DateTimeKind.Utc); - var unixEpochTime = newYear.ToUnixTimeStamp(Contracts.TimeEnum.MilliSecond).Result; - Assert.Equal(unixEpochTime.ToDateTime(Contracts.TimeEnum.MilliSecond).Result, newYear); - } - - [Fact] - public void ToDateTime_ReturnDoesNotMatch_WhenMillisecondUnixTimeIsGiven_ButSecondUnixTimeIsExpected() - { - var newYear = new DateTime(2024, 01, 01, 0, 0, 0, DateTimeKind.Utc); - var unixEpochTime = newYear.ToUnixTimeStamp(Contracts.TimeEnum.Second).Result; - Assert.NotEqual(unixEpochTime.ToDateTime(Contracts.TimeEnum.MilliSecond).Result, newYear); - } - - [Theory] - [InlineData("2023-01-01", 20230101)] - [InlineData("2023-02-02", 20230202)] - public void ToIntDate_ReturnValidInt_WhenValidDateTimeIsProvided(string dt, int dtInt) - { - var dateTime = DateTime.Parse(dt); - Assert.Equal(dateTime.ToIntDate().Result, dtInt); - } - - [Theory] - [InlineData("2023-01-01", "yyMMdd", 230101)] - public void ToIntDate_ReturnValidInt_WhenCustomFormatIsGiven(string dt, string format, int dtInt) - { - var datetime = DateTime.Parse(dt); - var result = datetime.ToIntDate(format); - Assert.Equal(result.Result, dtInt); - } -} \ No newline at end of file diff --git a/test/UtilityVerse.UnitTest/GenericExtensionTest.cs b/test/UtilityVerse.UnitTest/GenericExtensionTest.cs index 78babcc..a325b13 100644 --- a/test/UtilityVerse.UnitTest/GenericExtensionTest.cs +++ b/test/UtilityVerse.UnitTest/GenericExtensionTest.cs @@ -21,13 +21,13 @@ public void ToByteArray_ReturnsValidByteArray_WhenValidInputIsProvided() public void To_ThrowException_WhenNullByteArrayIsGiven() { byte[] array = default; - Assert.Throws(() => array.To().Result); + Assert.Null(array.To().Result); } [Fact] public void ToByteArray_ThrowsException_WhenNullClassIsProvided() { User user = default; - Assert.Throws(() => user.ToByteArray().Result); + Assert.Null(user.ToByteArray().Result); } } diff --git a/test/UtilityVerse.UnitTest/IntExtensionTest.cs b/test/UtilityVerse.UnitTest/IntExtensionTest.cs index bf7c6da..e26cd4a 100644 --- a/test/UtilityVerse.UnitTest/IntExtensionTest.cs +++ b/test/UtilityVerse.UnitTest/IntExtensionTest.cs @@ -11,14 +11,14 @@ public class IntExtensionTest public void IsInBetween_ThrowException_IfMaxIsNull() { int source = 0; - Assert.Throws(() => source.IsInBetween(1, default).Result); + Assert.False(source.IsInBetween(1, default).Result); } [Fact] public void IsInBetween_ThrowException_WhenMinIsGreaterThanMax() { int source = 0; - Assert.Throws(() => source.IsInBetween(1, 0).Result); + Assert.False(source.IsInBetween(1, 0).Result); } [Fact] diff --git a/test/UtilityVerse.UnitTest/Usings.cs b/test/UtilityVerse.UnitTest/Usings.cs index 502a8d8..1b3f01b 100644 --- a/test/UtilityVerse.UnitTest/Usings.cs +++ b/test/UtilityVerse.UnitTest/Usings.cs @@ -1,2 +1,3 @@ -global using UtilityVerse.Extensions; -global using Xunit; \ No newline at end of file +global using Xunit; +global using UtilityVerse; +global using UtilityVerse.Extensions; \ No newline at end of file diff --git a/test/UtilityVerse.UnitTest/UtilityVerse.UnitTest.csproj b/test/UtilityVerse.UnitTest/UtilityVerse.UnitTest.csproj index 9c80242..d863d7b 100644 --- a/test/UtilityVerse.UnitTest/UtilityVerse.UnitTest.csproj +++ b/test/UtilityVerse.UnitTest/UtilityVerse.UnitTest.csproj @@ -1,20 +1,13 @@ - net8.0 + net9.0 enable - disable false true - - - - - -