(feature): remove vulnerable dependencies
This commit is contained in:
		
							parent
							
								
									cb69fb85c5
								
							
						
					
					
						commit
						9107fc86ed
					
				| @ -1,6 +1,6 @@ | ||||
| MIT License | ||||
| 
 | ||||
| Copyright (c) 2024 Maksym Sadovnychyy (MAKS-IT) | ||||
| Copyright (c) 2024 - 2025 Maksym Sadovnychyy (MAKS-IT) | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
|  | ||||
| @ -1,8 +1,137 @@ | ||||
| namespace MaksIT.Results.Tests { | ||||
|   public class UnitTest1 { | ||||
|     [Fact] | ||||
|     public void Test1() { | ||||
| using Xunit; | ||||
| using System.Net; | ||||
| using MaksIT.Results; | ||||
| using MaksIT.Results.Mvc; | ||||
| 
 | ||||
| namespace MaksIT.Results.Tests { | ||||
|   public class ResultTests { | ||||
|     [Fact] | ||||
|     public void Result_Ok_ShouldReturnSuccess() { | ||||
|       // Arrange | ||||
|       var message = "Operation successful"; | ||||
| 
 | ||||
|       // Act | ||||
|       var result = Result.Ok(message); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.True(result.IsSuccess); | ||||
|       Assert.Contains(message, result.Messages); | ||||
|       Assert.Equal(HttpStatusCode.OK, result.StatusCode); | ||||
|     } | ||||
| 
 | ||||
|     [Fact] | ||||
|     public void Result_BadRequest_ShouldReturnFailure() { | ||||
|       // Arrange | ||||
|       var message = "Invalid request"; | ||||
| 
 | ||||
|       // Act | ||||
|       var result = Result.BadRequest(message); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.False(result.IsSuccess); | ||||
|       Assert.Contains(message, result.Messages); | ||||
|       Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode); | ||||
|     } | ||||
| 
 | ||||
|     [Fact] | ||||
|     public void Result_Generic_Ok_ShouldReturnSuccessWithValue() { | ||||
|       // Arrange | ||||
|       var value = 42; | ||||
|       var message = "Operation successful"; | ||||
| 
 | ||||
|       // Act | ||||
|       var result = Result<int>.Ok(value, message); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.True(result.IsSuccess); | ||||
|       Assert.Equal(value, result.Value); | ||||
|       Assert.Contains(message, result.Messages); | ||||
|       Assert.Equal(HttpStatusCode.OK, result.StatusCode); | ||||
|     } | ||||
| 
 | ||||
|     [Fact] | ||||
|     public void Result_Generic_NotFound_ShouldReturnFailureWithNullValue() { | ||||
|       // Arrange | ||||
|       var message = "Resource not found"; | ||||
| 
 | ||||
|       // Act | ||||
|       var result = Result<string>.NotFound(null, message); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.False(result.IsSuccess); | ||||
|       Assert.Null(result.Value); | ||||
|       Assert.Contains(message, result.Messages); | ||||
|       Assert.Equal(HttpStatusCode.NotFound, result.StatusCode); | ||||
|     } | ||||
| 
 | ||||
|     [Fact] | ||||
|     public void Result_ToResultOfType_ShouldTransformValue() { | ||||
|       // Arrange | ||||
|       var initialValue = 42; | ||||
|       var transformedValue = "42"; | ||||
|       var result = Result<int>.Ok(initialValue); | ||||
| 
 | ||||
|       // Act | ||||
|       var transformedResult = result.ToResultOfType(value => value.ToString()); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.True(transformedResult.IsSuccess); | ||||
|       Assert.Equal(transformedValue, transformedResult.Value); | ||||
|       Assert.Equal(result.StatusCode, transformedResult.StatusCode); | ||||
|     } | ||||
| 
 | ||||
|     [Fact] | ||||
|     public void Result_ToActionResult_ShouldReturnStatusCodeResult() { | ||||
|       // Arrange | ||||
|       var result = Result.Ok("Operation successful"); | ||||
| 
 | ||||
|       // Act | ||||
|       var actionResult = result.ToActionResult(); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.IsType<StatusCodeResult>(actionResult); | ||||
|       var statusCodeResult = actionResult as StatusCodeResult; | ||||
|       Assert.NotNull(statusCodeResult); | ||||
|       Assert.Equal((int)HttpStatusCode.OK, statusCodeResult.StatusCode); | ||||
|     } | ||||
| 
 | ||||
|     [Fact] | ||||
|     public void Result_ToActionResult_ShouldReturnObjectResultForFailure() { | ||||
|       // Arrange | ||||
|       var errorMessage = "An error occurred"; | ||||
|       var result = Result.BadRequest(errorMessage); | ||||
| 
 | ||||
|       // Act | ||||
|       var actionResult = result.ToActionResult(); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.IsType<ObjectResult>(actionResult); | ||||
|       var objectResult = actionResult as ObjectResult; | ||||
|       Assert.NotNull(objectResult); | ||||
|       Assert.Equal((int)HttpStatusCode.BadRequest, objectResult.StatusCode); | ||||
|       Assert.IsType<ProblemDetails>(objectResult.Value); | ||||
|       var problemDetails = objectResult.Value as ProblemDetails; | ||||
|       Assert.NotNull(problemDetails); | ||||
|       Assert.Equal((int)HttpStatusCode.BadRequest, problemDetails.Status); | ||||
|       Assert.Equal("An error occurred", problemDetails.Title); | ||||
|       Assert.Equal(errorMessage, problemDetails.Detail); | ||||
|     } | ||||
| 
 | ||||
|     [Fact] | ||||
|     public void Result_Generic_ToActionResult_ShouldReturnObjectResultWithValue() { | ||||
|       // Arrange | ||||
|       var value = new { Id = 1, Name = "Test" }; | ||||
|       var result = Result<object>.Ok(value); | ||||
| 
 | ||||
|       // Act | ||||
|       var actionResult = result.ToActionResult(); | ||||
| 
 | ||||
|       // Assert | ||||
|       Assert.IsType<ObjectResult>(actionResult); | ||||
|       var objectResult = actionResult as ObjectResult; | ||||
|       Assert.NotNull(objectResult); | ||||
|       Assert.Equal((int)HttpStatusCode.OK, objectResult.StatusCode); | ||||
|       Assert.Equal(value, objectResult.Value); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -4,11 +4,11 @@ | ||||
|     <TargetFramework>net8.0</TargetFramework> | ||||
|     <ImplicitUsings>enable</ImplicitUsings> | ||||
|     <Nullable>enable</Nullable> | ||||
|     <RootNamespace>MaksIT.$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace> | ||||
|     <RootNamespace>$(MSBuildProjectName.Replace(" ", "_"))</RootNamespace> | ||||
| 
 | ||||
|     <!-- NuGet package metadata --> | ||||
|     <PackageId>MaksIT.Results</PackageId> | ||||
|     <Version>1.0.6</Version> | ||||
|     <Version>1.0.7</Version> | ||||
|     <Authors>Maksym Sadovnychyy</Authors> | ||||
|     <Company>MAKS-IT</Company> | ||||
|     <Product>MaksIT.Results</Product> | ||||
| @ -18,10 +18,15 @@ | ||||
|     <License>MIT</License> | ||||
|     <RequireLicenseAcceptance>false</RequireLicenseAcceptance> | ||||
|     <PackageReadmeFile>README.md</PackageReadmeFile> | ||||
|     <PackageLicenseFile>LICENSE.md</PackageLicenseFile> | ||||
|   </PropertyGroup> | ||||
| 
 | ||||
|   <ItemGroup> | ||||
|     <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.3.0" /> | ||||
|     <None Include="../../README.md" Pack="true" PackagePath="" /> | ||||
|     <None Include="../../LICENSE.md" Pack="true" PackagePath="" /> | ||||
|   </ItemGroup> | ||||
| 
 | ||||
|   <ItemGroup> | ||||
|     <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.3.0" /> | ||||
|   </ItemGroup> | ||||
| </Project> | ||||
|  | ||||
							
								
								
									
										29
									
								
								src/MaksIT.Results/Mvc/ObjectResult.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/MaksIT.Results/Mvc/ObjectResult.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
| using System.Threading.Tasks; | ||||
| 
 | ||||
| namespace MaksIT.Results.Mvc; | ||||
| 
 | ||||
| public class ObjectResult : IActionResult { | ||||
|   public object? Value { get; } | ||||
|   public int? StatusCode { get; set; } | ||||
| 
 | ||||
|   public ObjectResult(object? value) { | ||||
|     Value = value; | ||||
|   } | ||||
| 
 | ||||
|   public async Task ExecuteResultAsync(ActionContext context) { | ||||
|     var response = context.HttpContext.Response; | ||||
|     if (StatusCode.HasValue) { | ||||
|       response.StatusCode = StatusCode.Value; | ||||
|     } | ||||
|     response.ContentType = "application/json"; | ||||
|     if (Value is not null) { | ||||
|       await JsonSerializer.SerializeAsync(response.Body, Value); | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										15
									
								
								src/MaksIT.Results/Mvc/ProblemDetails.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/MaksIT.Results/Mvc/ProblemDetails.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Threading.Tasks; | ||||
| 
 | ||||
| namespace MaksIT.Results.Mvc; | ||||
| 
 | ||||
| public class ProblemDetails { | ||||
|   public int? Status { get; set; } | ||||
|   public string? Title { get; set; } | ||||
|   public string? Detail { get; set; } | ||||
|   public string? Instance { get; set; } | ||||
|   public IDictionary<string, object?> Extensions { get; } = new Dictionary<string, object?>(); | ||||
| } | ||||
							
								
								
									
										17
									
								
								src/MaksIT.Results/Mvc/StatusCodeResult.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/MaksIT.Results/Mvc/StatusCodeResult.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| 
 | ||||
| 
 | ||||
| namespace MaksIT.Results.Mvc; | ||||
| 
 | ||||
| public class StatusCodeResult : IActionResult { | ||||
|   public int StatusCode { get; } | ||||
| 
 | ||||
|   public StatusCodeResult(int statusCode) { | ||||
|     StatusCode = statusCode; | ||||
|   } | ||||
| 
 | ||||
|   public async Task ExecuteResultAsync(ActionContext context) { | ||||
|     context.HttpContext.Response.StatusCode = StatusCode; | ||||
|     await Task.CompletedTask; | ||||
|   } | ||||
| } | ||||
| @ -1,5 +1,7 @@ | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| using System.Net; | ||||
| using System.Net; | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| using MaksIT.Results.Mvc; | ||||
| 
 | ||||
| 
 | ||||
| namespace MaksIT.Results; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Maksym Sadovnychyy
						Maksym Sadovnychyy