Skip to content
This repository was archived by the owner on Jun 8, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/workflows/dotnet-nuget.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Build and Package NuGet

on:
workflow_dispatch:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '8.0.x'

- name: Restore dependencies
run:
dotnet restore SnipeSharp/SnipeSharp.csproj

- name: Set version number to date/time
run: |
#ls SnipeSharp
echo "Setting version number"
VERSION=$(date +'%Y.%m.%d.%H%M')
cat SnipeSharp/SnipeSharp.csproj # View the updated
sed -i "s/<Version>.*<\/Version>/<Version>$VERSION<\/Version>/" SnipeSharp/SnipeSharp.csproj
cat SnipeSharp/SnipeSharp.csproj # View the updated

- name: Build
run:
dotnet build SnipeSharp/SnipeSharp.csproj --configuration Release

- name: Pack
run:
dotnet pack SnipeSharp/SnipeSharp.csproj --configuration Release --output ./nupkgs

- name: Upload NuGet Packages
uses: actions/upload-artifact@v4
with:
name: nuget-packages
path: ./nupkgs/*.nupkg

- name: Push nuget package to Github
run: dotnet nuget push ./nupkgs/*.nupkg --api-key ${{ secrets.NUGET_GITHUB }} --source "https://nuget.pkg.github.com/rlouch2/index.json"
#- name: Push to NuGet
# run: dotnet nuget push ./nupkgs/*.nupkg --api-key ${{ secrets.NUGET }} --source https://api.nuget.org/v3/index.json
4 changes: 2 additions & 2 deletions SnipeSharp.PowerShell/SnipeSharp.PowerShell.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>netstandard2.1</TargetFramework>
<OutputType>library</OutputType>
<AssemblyName>SnipeSharp.PowerShell</AssemblyName>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
Expand All @@ -12,7 +12,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="PowerShellStandard.Library" Version="5.1.0" />
<PackageReference Include="PowerShellStandard.Library" Version="5.1.1" />

<ProjectReference Include="../SnipeSharp/SnipeSharp.csproj" />
<None Update="$(AssemblyName).psd1;$(AssemblyName)*.ps1xml" CopyToOutputDirectory="PreserveNewest" />
Expand Down
103 changes: 53 additions & 50 deletions SnipeSharp.Tests/MockClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@
using System.Threading.Tasks;
using RestSharp;
using RestSharp.Authenticators;
using RestSharp.Deserializers;
using RestSharp.Serialization;
using RestSharp.Serializers;
//using RestSharp.Deserializers;
//using RestSharp.Serialization;

namespace SnipeSharp.Tests
{
internal sealed class FakeResponse : IRestResponse
internal sealed class FakeResponse : RestResponse
{
internal static FakeResponse FromFile(string path, bool isSuccessful = true, HttpStatusCode? statusCode = null)
=> new FakeResponse(null == path ? string.Empty : File.ReadAllText(path), isSuccessful, statusCode);
Expand All @@ -27,7 +28,7 @@ public FakeResponse(string content, bool isSuccessful = true, HttpStatusCode? st
if(statusCode.HasValue)
StatusCode = statusCode.Value;
}
public IRestRequest Request { get; set; }
public RestRequest Request { get; set; }
public string ContentType { get; set; }
public long ContentLength { get; set; }
public string ContentEncoding { get; set; }
Expand All @@ -38,7 +39,7 @@ public FakeResponse(string content, bool isSuccessful = true, HttpStatusCode? st
public byte[] RawBytes { get; set; }
public Uri ResponseUri { get; set; }
public string Server { get; set; }
public IList<RestResponseCookie> Cookies => throw new NotImplementedException();
//public IList<RestResponseCookie> Cookies => throw new NotImplementedException();
public IList<Parameter> Headers => throw new NotImplementedException();
public ResponseStatus ResponseStatus { get; set; }
public string ErrorMessage { get; set; }
Expand All @@ -48,20 +49,22 @@ public FakeResponse(string content, bool isSuccessful = true, HttpStatusCode? st

internal sealed class FakeRequest
{
internal IRestRequest Request;
internal RestRequest Request;
internal string Body;
internal Method Method;
internal Dictionary<string, string> Headers = new Dictionary<string, string>();
}

internal sealed class FakeRestClient : IRestClient
internal sealed class FakeRestClient : RestClient
{
internal readonly Queue<IRestResponse> Responses = new Queue<IRestResponse>();
internal readonly Queue<RestResponse> Responses = new Queue<RestResponse>();
internal readonly LinkedList<FakeRequest> Requests = new LinkedList<FakeRequest>();
public IRestResponse Response { get => Responses.Dequeue(); set {} }
private IAuthenticator authenticator;

public RestResponse Response { get => Responses.Dequeue(); set {} }
public string UserAgent { get; set; } = "StubRestClient";
public IRestResponse Execute(IRestRequest request) => Execute(request, request.Method);
public IRestResponse Execute(IRestRequest request, Method httpMethod)
public RestResponse Execute(RestRequest request) => Execute(request, request.Method);
public RestResponse Execute(RestRequest request, Method httpMethod)
{
var fakeRequest = new FakeRequest {
Request = request,
Expand All @@ -80,22 +83,22 @@ public IRestResponse Execute(IRestRequest request, Method httpMethod)
Requests.AddFirst(fakeRequest);
return Response;
}
public Uri BuildUri(IRestRequest request) => Utility.TEST_URI;
public Uri BuildUri(RestRequest request) => Utility.TEST_URI;

public CookieContainer CookieContainer { get; set; } = new CookieContainer();
public bool AutomaticDecompression { get; set; } = false;
public int? MaxRedirects { get; set; }
public int Timeout { get; set; } = int.MaxValue;
public int ReadWriteTimeout { get; set; } = int.MaxValue;
public bool UseSynchronizationContext { get; set; } = false;
public IAuthenticator Authenticator { get; set; }
public new IAuthenticator Authenticator { get => authenticator; set => authenticator = value; }
public Uri BaseUrl { get; set; }
public Encoding Encoding { get; set; } = Encoding.UTF8;
public bool FailOnDeserializationError { get; set; } = true;
public string ConnectionGroupName { get; set; }
public bool PreAuthenticate { get; set; } = false;
public bool UnsafeAuthenticatedConnectionSharing { get; set; } = false;
public IList<Parameter> DefaultParameters { get; set; } = new List<Parameter>();
public new IList<Parameter> DefaultParameters { get; set; } = new List<Parameter>();

public string BaseHost { get; set; }
public bool AllowMultipleDefaultParametersWithSameName { get; set; } = false;
Expand All @@ -106,110 +109,110 @@ public IRestResponse Execute(IRestRequest request, Method httpMethod)
public bool FollowRedirects { get; set; } = false;
public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; }

public void AddHandler(string contentType, IDeserializer deserializer)
=> throw new NotImplementedException();
//public void AddHandler(string contentType, R deserializer)
// => throw new NotImplementedException();

public void AddHandler(string contentType, Func<IDeserializer> deserializerFactory)
=> throw new NotImplementedException();
//public void AddHandler(string contentType, Func<IDeserializer> deserializerFactory)
// => throw new NotImplementedException();

public string BuildUriWithoutQueryParameters(IRestRequest request)
public string BuildUriWithoutQueryParameters(RestRequest request)
=> throw new NotImplementedException();

public void ClearHandlers(){}

public void ConfigureWebRequest(Action<HttpWebRequest> configurator){}

public IRestResponse<T> Deserialize<T>(IRestResponse response)
public RestResponse<T> Deserialize<T>(RestResponse response)
=> throw new NotImplementedException();

public byte[] DownloadData(IRestRequest request)
public byte[] DownloadData(RestRequest request)
=> throw new NotImplementedException();

public byte[] DownloadData(IRestRequest request, bool throwOnError)
public byte[] DownloadData(RestRequest request, bool throwOnError)
=> throw new NotImplementedException();

public IRestResponse<T> Execute<T>(IRestRequest request) where T : new()
public RestResponse<T> Execute<T>(RestRequest request) where T : new()
=> throw new NotImplementedException();

public IRestResponse<T> Execute<T>(IRestRequest request, Method httpMethod) where T : new()
public RestResponse<T> Execute<T>(RestRequest request, Method httpMethod) where T : new()
=> throw new NotImplementedException();

public IRestResponse ExecuteAsGet(IRestRequest request, string httpMethod)
public RestResponse ExecuteAsGet(RestRequest request, string httpMethod)
=> throw new NotImplementedException();

public IRestResponse<T> ExecuteAsGet<T>(IRestRequest request, string httpMethod) where T : new()
public RestResponse<T> ExecuteAsGet<T>(RestRequest request, string httpMethod) where T : new()
=> throw new NotImplementedException();

public IRestResponse ExecuteAsPost(IRestRequest request, string httpMethod)
public RestResponse ExecuteAsPost(RestRequest request, string httpMethod)
=> throw new NotImplementedException();

public IRestResponse<T> ExecuteAsPost<T>(IRestRequest request, string httpMethod) where T : new()
public RestResponse<T> ExecuteAsPost<T>(RestRequest request, string httpMethod) where T : new()
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action<IRestResponse, RestRequestAsyncHandle> callback)
public RestRequestAsyncHandle ExecuteAsync(RestRequest request, Action<RestResponse, RestRequestAsyncHandle> callback)
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsync<T>(IRestRequest request, Action<IRestResponse<T>, RestRequestAsyncHandle> callback)
public RestRequestAsyncHandle ExecuteAsync<T>(RestRequest request, Action<RestResponse<T>, RestRequestAsyncHandle> callback)
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action<IRestResponse, RestRequestAsyncHandle> callback, Method httpMethod)
public RestRequestAsyncHandle ExecuteAsync(RestRequest request, Action<RestResponse, RestRequestAsyncHandle> callback, Method httpMethod)
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsync<T>(IRestRequest request, Action<IRestResponse<T>, RestRequestAsyncHandle> callback, Method httpMethod)
public RestRequestAsyncHandle ExecuteAsync<T>(RestRequest request, Action<RestResponse<T>, RestRequestAsyncHandle> callback, Method httpMethod)
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsyncGet(IRestRequest request, Action<IRestResponse, RestRequestAsyncHandle> callback, string httpMethod)
public RestRequestAsyncHandle ExecuteAsyncGet(RestRequest request, Action<RestResponse, RestRequestAsyncHandle> callback, string httpMethod)
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsyncGet<T>(IRestRequest request, Action<IRestResponse<T>, RestRequestAsyncHandle> callback, string httpMethod)
public RestRequestAsyncHandle ExecuteAsyncGet<T>(RestRequest request, Action<RestResponse<T>, RestRequestAsyncHandle> callback, string httpMethod)
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsyncPost(IRestRequest request, Action<IRestResponse, RestRequestAsyncHandle> callback, string httpMethod)
public RestRequestAsyncHandle ExecuteAsyncPost(RestRequest request, Action<RestResponse, RestRequestAsyncHandle> callback, string httpMethod)
=> throw new NotImplementedException();

public RestRequestAsyncHandle ExecuteAsyncPost<T>(IRestRequest request, Action<IRestResponse<T>, RestRequestAsyncHandle> callback, string httpMethod)
public RestRequestAsyncHandle ExecuteAsyncPost<T>(RestRequest request, Action<RestResponse<T>, RestRequestAsyncHandle> callback, string httpMethod)
=> throw new NotImplementedException();

public Task<IRestResponse<T>> ExecuteGetTaskAsync<T>(IRestRequest request)
public Task<RestResponse<T>> ExecuteGetTaskAsync<T>(RestRequest request)
=> throw new NotImplementedException();

public Task<IRestResponse<T>> ExecuteGetTaskAsync<T>(IRestRequest request, CancellationToken token)
public Task<RestResponse<T>> ExecuteGetTaskAsync<T>(RestRequest request, CancellationToken token)
=> throw new NotImplementedException();

public Task<IRestResponse> ExecuteGetTaskAsync(IRestRequest request)
public Task<RestResponse> ExecuteGetTaskAsync(RestRequest request)
=> throw new NotImplementedException();

public Task<IRestResponse> ExecuteGetTaskAsync(IRestRequest request, CancellationToken token)
public Task<RestResponse> ExecuteGetTaskAsync(RestRequest request, CancellationToken token)
=> throw new NotImplementedException();

public Task<IRestResponse<T>> ExecutePostTaskAsync<T>(IRestRequest request)
public Task<RestResponse<T>> ExecutePostTaskAsync<T>(RestRequest request)
=> throw new NotImplementedException();

public Task<IRestResponse<T>> ExecutePostTaskAsync<T>(IRestRequest request, CancellationToken token)
public Task<RestResponse<T>> ExecutePostTaskAsync<T>(RestRequest request, CancellationToken token)
=> throw new NotImplementedException();

public Task<IRestResponse> ExecutePostTaskAsync(IRestRequest request)
public Task<RestResponse> ExecutePostTaskAsync(RestRequest request)
=> throw new NotImplementedException();

public Task<IRestResponse> ExecutePostTaskAsync(IRestRequest request, CancellationToken token)
public Task<RestResponse> ExecutePostTaskAsync(RestRequest request, CancellationToken token)
=> throw new NotImplementedException();

public Task<IRestResponse<T>> ExecuteTaskAsync<T>(IRestRequest request, CancellationToken token)
public Task<RestResponse<T>> ExecuteTaskAsync<T>(RestRequest request, CancellationToken token)
=> throw new NotImplementedException();

public Task<IRestResponse<T>> ExecuteTaskAsync<T>(IRestRequest request, Method httpMethod)
public Task<RestResponse<T>> ExecuteTaskAsync<T>(RestRequest request, Method httpMethod)
=> throw new NotImplementedException();

public Task<IRestResponse<T>> ExecuteTaskAsync<T>(IRestRequest request)
public Task<RestResponse<T>> ExecuteTaskAsync<T>(RestRequest request)
=> throw new NotImplementedException();

public Task<IRestResponse> ExecuteTaskAsync(IRestRequest request, CancellationToken token)
public Task<RestResponse> ExecuteTaskAsync(RestRequest request, CancellationToken token)
=> throw new NotImplementedException();

public Task<IRestResponse> ExecuteTaskAsync(IRestRequest request, CancellationToken token, Method httpMethod)
public Task<RestResponse> ExecuteTaskAsync(RestRequest request, CancellationToken token, Method httpMethod)
=> throw new NotImplementedException();

public Task<IRestResponse> ExecuteTaskAsync(IRestRequest request)
public Task<RestResponse> ExecuteTaskAsync(RestRequest request)
=> throw new NotImplementedException();

public void RemoveHandler(string contentType){}
Expand Down
3 changes: 2 additions & 1 deletion SnipeSharp.Tests/SnipeSharp.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netcoreapp3.0</TargetFrameworks>
<TargetFrameworks>net8.0</TargetFrameworks>
<OutputType>library</OutputType>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="xunit" Version="2.4.1" />
Expand Down
2 changes: 1 addition & 1 deletion SnipeSharp.Tests/Utility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ internal static SnipeItApi SingleUseApiFromFile(string filePath, bool isSuccessf
return new SnipeItApi(restClient: client) { Token = TEST_TOKEN, Uri = TEST_URI };
}

internal static SnipeItApi MultipleUseApi(out Queue<IRestResponse> responseQueue)
internal static SnipeItApi MultipleUseApi(out Queue<RestResponse> responseQueue)
{
var client = new FakeRestClient();
responseQueue = client.Responses;
Expand Down
4 changes: 2 additions & 2 deletions SnipeSharp/ApiOptionalMultiResponse.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using SnipeSharp.Models;
using System;
using System.Runtime.ExceptionServices;
using SnipeSharp.Models;

namespace SnipeSharp
{
Expand Down Expand Up @@ -32,7 +32,7 @@ public bool HasValue
/// <returns>This same response.</returns>
public ApiOptionalMultiResponse<T> RethrowExceptionIfAny()
{
if(null != Exception)
if (null != Exception)
ExceptionDispatchInfo.Capture(Exception).Throw();
return this;
}
Expand Down
4 changes: 2 additions & 2 deletions SnipeSharp/ApiOptionalResponse.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using SnipeSharp.Models;
using System;
using System.Runtime.ExceptionServices;
using SnipeSharp.Models;

namespace SnipeSharp
{
Expand Down Expand Up @@ -42,7 +42,7 @@ public bool HasValue
/// <returns>This same response.</returns>
public ApiOptionalResponse<T> RethrowExceptionIfAny()
{
if(null != Exception)
if (null != Exception)
ExceptionDispatchInfo.Capture(Exception).Throw();
return this;
}
Expand Down
Loading