Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for target tag endpoints #866

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Inherit from `IHaveSpaceResource` for command and request classes

3ac11a5
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Open

Add support for target tag endpoints #866

Inherit from `IHaveSpaceResource` for command and request classes
3ac11a5
Select commit
Loading
Failed to load commit list.
GitHub Actions / Windows.Net 4.8 unit test results failed Jul 23, 2024 in 1s

463 passed, 1 failed and 0 skipped

Tests failed

❌ ./TestResults/Win_net48_20240723001825.trx

464 tests were completed in 29s with 463 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Octo.Tests.Commands.AutomationEnvironmentProviderFixture 2✅ 277ms
Octopus.Client.Tests.Conventions.AccountTypeConventions 1✅ 32ms
Octopus.Client.Tests.Conventions.ClientConventions 22✅ 95ms
Octopus.Client.Tests.Conventions.RepositorySymmetryConventions 2✅ 1ms
Octopus.Client.Tests.DefaultLinkResolverFixture 24✅ 23ms
Octopus.Client.Tests.Exceptions.OctopusExceptionFactoryFixture 42✅ 396ms
Octopus.Client.Tests.Extensions.DateTimeExtensionsFixture 9✅ 154ms
Octopus.Client.Tests.Extensions.TypeExtensionMethodsFixture 3✅ 6ms
Octopus.Client.Tests.HttpRequestRouting.GivenAGetPayload 10✅ 1s
Octopus.Client.Tests.HttpRequestRouting.GivenAPostPayload 8✅ 649ms
Octopus.Client.Tests.Integration.OctopusClient.AntiforgeryTokenTests 2✅ 513ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersAzureDevOpsTests 2✅ 22ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersBambooTests 2✅ 9ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersTeamCityTests 2✅ 10ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersUnspecifiedTests 2✅ 13ms
Octopus.Client.Tests.Integration.OctopusClient.ErrorHandlingTests 1✅ 39ms
Octopus.Client.Tests.Integration.OctopusClient.FileTests 2✅ 42ms
Octopus.Client.Tests.Integration.OctopusClient.HttpMethodTests 4✅ 65ms
Octopus.Client.Tests.Integration.OctopusClient.NonJsonReturnTypeTests 3✅ 25ms
Octopus.Client.Tests.Integration.OctopusClient.StatusTests 7✅ 58ms
Octopus.Client.Tests.Integration.OctopusClient.StreamTests 1✅ 8ms
Octopus.Client.Tests.Integration.OctopusClient.TimeoutTests 2✅ 5s
Octopus.Client.Tests.Integration.OctopusClient.UserAgentTests 2✅ 16ms
Octopus.Client.Tests.Integration.Repository.MachineRepositoryTest 3✅ 173ms
Octopus.Client.Tests.Integration.Repository.TenantRepositoryTest 2✅ 23ms
Octopus.Client.Tests.Integration.Repository.UnauthorisedTest 1✅ 18ms
Octopus.Client.Tests.Model.InterruptionResourceFixture 4✅ 11ms
Octopus.Client.Tests.Model.InterruptionTypeFixture 2✅ 1ms
Octopus.Client.Tests.Model.NonEmptyCollectionItemAttributeFixture 3✅ 1ms
Octopus.Client.Tests.Model.PasswordComplexityAttributeFixture 10✅ 1ms
Octopus.Client.Tests.Model.SemanticVersionMaskFixture 62✅ 13ms
Octopus.Client.Tests.Model.TenantVariableResourceFixture 6✅ 32ms
Octopus.Client.Tests.Model.Versioning.VersionComparerFixture 23✅ 2ms
Octopus.Client.Tests.OctopusClientsCanBeMockedFixture 2✅ 181ms
Octopus.Client.Tests.OctopusRepositoryConventionFixture 1✅ 2ms
Octopus.Client.Tests.Operations.RegisterKubernetesClusterOperationFixture 7✅ 160ms
Octopus.Client.Tests.Operations.RegisterKubernetesDeploymentTargetOperationFixture 7✅ 27ms
Octopus.Client.Tests.Operations.RegisterKubernetesWorkerOperationFixture 4✅ 31ms
Octopus.Client.Tests.Operations.RegisterMachineOperationFixture 14✅ 43ms
Octopus.Client.Tests.Operations.RegisterWorkerOperationFixture 18✅ 98ms
Octopus.Client.Tests.PublicSurfaceAreaFixture 1❌ 128ms
Octopus.Client.Tests.Repositories.Async.BasicRepositoryFixture 16✅ 24ms
Octopus.Client.Tests.Repositories.Async.ProjectTriggerRepositoryTest 1✅ 7ms
Octopus.Client.Tests.Repositories.Async.TaskRepositoryTests 3✅ 11s
Octopus.Client.Tests.Repositories.BasicRepositoryFixture 15✅ 16ms
Octopus.Client.Tests.Repositories.OctopusAsyncRepositoryTests 1✅ 3ms
Octopus.Client.Tests.Repositories.OctopusRepositoryTests 2✅ 5ms
Octopus.Client.Tests.Repositories.ProjectBetaRepositoryTests 3✅ 12ms
Octopus.Client.Tests.Repositories.ProjectRepositoryFixture 3✅ 8ms
Octopus.Client.Tests.Repositories.ProjectRepositorySettingsFixture 1✅ 25ms
Octopus.Client.Tests.Repositories.VariableSetBetaRepositoryTests 4✅ 9ms
Octopus.Client.Tests.Serialization.ChannelVersionRuleResourceSerializationFixture 2✅ 24ms
Octopus.Client.Tests.Serialization.ControlConverterTests 2✅ 7ms
Octopus.Client.Tests.Serialization.CrossPlatformDateTimeZoneJsonConverterFixture 8✅ 13ms
Octopus.Client.Tests.Serialization.EndpointConverterFixture 11✅ 34ms
Octopus.Client.Tests.Serialization.FeedResourceConverterFixture 7✅ 18ms
Octopus.Client.Tests.Serialization.InheritedClassConverterFixture 3✅ 9ms
Octopus.Client.Tests.Serialization.MultiIsoDateTimeFormatConverterFixture 4✅ 3ms
Octopus.Client.Tests.Serialization.PermissionSerializationFixture 7✅ 26ms
Octopus.Client.Tests.Serialization.PermissiveInstantJsonConverterFixture 5✅ 6ms
Octopus.Client.Tests.Serialization.TentacleConfigurationConverterFixture 2✅ 6ms
Octopus.Client.Tests.Serialization.TinyTypeSerializationFixture 2✅ 15ms
Octopus.Client.Tests.Serialization.VersioningStrategyResourceSerializationFixture 4✅ 9ms
Octopus.Client.Tests.ServerVersionCheckFixture 8✅ 2ms
Octopus.Client.Tests.Spaces.MixedScopeSpaceContextExtensionTests 3✅ 35ms
Octopus.Client.Tests.Spaces.SpaceIdAsyncTests 10✅ 17ms
Octopus.Client.Tests.UrlTemplateTests 12✅ 7ms

✅ Octo.Tests.Commands.AutomationEnvironmentProviderFixture

✅ EnvironmentIsKnownIfBuildVariablesHaveValues
✅ EnvironmentIsUnknownIfBuildVariablesDontHaveValues

✅ Octopus.Client.Tests.Conventions.AccountTypeConventions

✅ AllAccountResourceTypeCanBeMappedToAnAccountType

✅ Octopus.Client.Tests.Conventions.ClientConventions

✅ AllAsyncRepositoriesShouldBeAvailableViaIOctopusAsyncRepository
✅ AllAsyncRepositoryInterfacesShouldFollowTheseConventions
✅ AllRepositoriesShouldExposePublicMembersViaTheirInterfaces
✅ AllRepositoriesShouldImplementNonGenericSimpleInterface
✅ AllResourcePropertiesShouldHavePublicGetters
✅ AllResourcePropertiesShouldHavePublicSetters
✅ AllResourcesShouldLiveInTheCorrectParentNamespace
✅ AllSyncRepositoriesShouldBeAvailableViaIOctopusRepository
✅ AllSyncRepositoryInterfacesShouldFollowTheseConventions
✅ AsyncRepositoriesThatGetNamedResourcesShouldUsuallyImplementIFindByName
✅ AsyncRepositoriesThatImplementCreateShouldAlsoImplementDelete
✅ AsyncRepositoriesThatImplementCreateShouldAlsoImplementModify
✅ MostAsyncRepositoriesThatGetResourcesShouldImplementIPaginate
✅ MostSyncRepositoriesThatGetResourcesShouldImplementIPaginate
✅ RepositoriesShouldBeNamedLikeTheirResourceType
✅ RepositoriesShouldNotRepresentMultipleResourceTypes
✅ SomeINamedResourcesShouldNeverBeIFindByNameToAvoidGettingTheWrongAnswer
✅ SyncRepositoriesThatGetNamedResourcesShouldUsuallyImplementIFindByName
✅ SyncRepositoriesThatImplementCreateShouldAlsoImplementDelete
✅ SyncRepositoriesThatImplementCreateShouldAlsoImplementModify
✅ ThereShouldBeAsyncRepositories
✅ TopLevelResourcesWithAPublicNamePropertyShouldProbablyImplementINamedResource

✅ Octopus.Client.Tests.Conventions.RepositorySymmetryConventions

✅ IOctopusAsyncRepositoryExposesTheSamePropertiesAsIOctopusRepository
✅ IOctopusRepositoryExposesTheSamePropertiesAsIOctopusAsyncRepository

✅ Octopus.Client.Tests.DefaultLinkResolverFixture

✅ ShouldResolveWhenApiSuffixGiven("~/","http://octopus/")
✅ ShouldResolveWhenApiSuffixGiven("~/api","http://octopus/api")
✅ ShouldResolveWhenApiSuffixGiven("~/api/foo","http://octopus/api/foo")
✅ ShouldResolveWhenApiSuffixGiven("~/api/foo/bar","http://octopus/api/foo/bar")
✅ ShouldResolveWhenNestedVirtualDirectoryApiSuffixGiven("~/","http://octopus/vdir1/vdir2/")
✅ ShouldResolveWhenNestedVirtualDirectoryApiSuffixGiven("~/api","http://octopus/vdir1/vdir2/api")
✅ ShouldResolveWhenNestedVirtualDirectoryApiSuffixGiven("~/api/foo","http://octopus/vdir1/vdir2/api/foo")
✅ ShouldResolveWhenNestedVirtualDirectoryApiSuffixGiven("~/api/foo/bar","http://octopus/vdir1/vdir2/api/foo/bar")
✅ ShouldResolveWhenNestedVirtualDirectorySuffixGiven("~/","http://octopus/vdir1/vdir2/")
✅ ShouldResolveWhenNestedVirtualDirectorySuffixGiven("~/api","http://octopus/vdir1/vdir2/api")
✅ ShouldResolveWhenNestedVirtualDirectorySuffixGiven("~/api/foo","http://octopus/vdir1/vdir2/api/foo")
✅ ShouldResolveWhenNestedVirtualDirectorySuffixGiven("~/api/foo/bar","http://octopus/vdir1/vdir2/api/foo/bar")
✅ ShouldResolveWhenNoSuffixGiven("~/","http://octopus/")
✅ ShouldResolveWhenNoSuffixGiven("~/api","http://octopus/api")
✅ ShouldResolveWhenNoSuffixGiven("~/api/foo","http://octopus/api/foo")
✅ ShouldResolveWhenNoSuffixGiven("~/api/foo/bar","http://octopus/api/foo/bar")
✅ ShouldResolveWhenVirtualDirectoryApiSuffixGiven("~/","http://octopus/vdir/")
✅ ShouldResolveWhenVirtualDirectoryApiSuffixGiven("~/api","http://octopus/vdir/api")
✅ ShouldResolveWhenVirtualDirectoryApiSuffixGiven("~/api/foo","http://octopus/vdir/api/foo")
✅ ShouldResolveWhenVirtualDirectoryApiSuffixGiven("~/api/foo/bar","http://octopus/vdir/api/foo/bar")
✅ ShouldResolveWhenVirtualDirectorySuffixGiven("~/","http://octopus/vdir/")
✅ ShouldResolveWhenVirtualDirectorySuffixGiven("~/api","http://octopus/vdir/api")
✅ ShouldResolveWhenVirtualDirectorySuffixGiven("~/api/foo","http://octopus/vdir/api/foo")
✅ ShouldResolveWhenVirtualDirectorySuffixGiven("~/api/foo/bar","http://octopus/vdir/api/foo/bar")

✅ Octopus.Client.Tests.Exceptions.OctopusExceptionFactoryFixture

✅ CreatedOctopusMethodNotAllowedFoundException_ShouldContainPayloadInformation("",Octopus.Client.Exceptions.OctopusMethodNotAllowedFoundException)
✅ CreatedOctopusMethodNotAllowedFoundException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusMethodNotAllowedFoundException: Error Message)
✅ CreatedOctopusResourceNotFoundException_ShouldContainPayloadInformation("",Octopus.Client.Exceptions.OctopusResourceNotFoundException)
✅ CreatedOctopusResourceNotFoundException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusResourceNotFoundException: Error Message)
✅ CreatedOctopusSecurityException_ShouldContainPayloadInformation("",Octopus.Client.Exceptions.OctopusSecurityException)
✅ CreatedOctopusSecurityException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"HelpText\": \"Help Text\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusSecurityException: Error Message)
✅ CreatedOctopusSecurityException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusSecurityException: Error Message)
✅ CreatedOctopusServerException_ShouldContainPayloadInformation("",Octopus.Client.Exceptions.OctopusServerException)
✅ CreatedOctopusServerException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"HelpText\": \"Help Text\",\r\n  \"FullException\": \"Full Exception\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusServerException: Full Exception)
✅ CreatedOctopusServerException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"HelpText\": \"Help Text\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusServerException: Error Message)
✅ CreatedOctopusServerException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusServerException: Error Message)
✅ CreatedOctopusValidationException_ShouldContainPayloadInformation("",Octopus.Client.Exceptions.OctopusValidationException: 


)
✅ CreatedOctopusValidationException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Errors\": [\r\n    \"Additional Errors\"\r\n  ],\r\n  \"HelpText\": \"Help Text\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusValidationException: Error Message

 - Additional Errors
)
✅ CreatedOctopusValidationException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"HelpText\": \"Help Text\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusValidationException: Error Message


)
✅ CreatedOctopusValidationException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",Octopus.Client.Exceptions.OctopusValidationException: Error Message


)
✅ Http400or409Response_WithNoPayLoad_ShouldCreateOctopusValidationException(BadRequest)
✅ Http400or409Response_WithNoPayLoad_ShouldCreateOctopusValidationException(Conflict)
✅ Http401or403Response_WithNoPayLoad_ShouldCreateOctopusSecurityException(Forbidden)
✅ Http401or403Response_WithNoPayLoad_ShouldCreateOctopusSecurityException(Unauthorized)
✅ Http404Response_WithNoPayLoad_ShouldCreateOctopusResourceNotFoundException
✅ Http405Response_WithNoPayLoad_ShouldCreateOctopusMethodNotAllowedFoundException
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(ExpectationFailed)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(Gone)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(LengthRequired)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(MovedPermanently)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(MultipleChoices)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(NotAcceptable)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(NotModified)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(PaymentRequired)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(PreconditionFailed)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(ProxyAuthenticationRequired)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(Redirect)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(RequestedRangeNotSatisfiable)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(RequestEntityTooLarge)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(RequestTimeout)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(RequestUriTooLong)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(SeeOther)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(TemporaryRedirect)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(UnsupportedMediaType)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(Unused)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(UpgradeRequired)
✅ HttpResponseWithStatusCodeExcluding_400_401_403_404_405_409_AndNoPayload_ShouldCreateOctopusServerException(UseProxy)

✅ Octopus.Client.Tests.Extensions.DateTimeExtensionsFixture

✅ ToDateTimeZoneOrNull("Africa/Bissau","Africa/Bissau")
✅ ToDateTimeZoneOrNull("Australia/Brisbane","Australia/Brisbane")
✅ ToDateTimeZoneOrNull("E. Australia Standard Time","Australia/Brisbane")
✅ ToDateTimeZoneOrNull("Etc/GMT+8","Etc/GMT+8")
✅ ToDateTimeZoneOrNull("Invalid",null)
✅ ToDateTimeZoneOrNull("Pacific Standard Time (Mexico)","America/Tijuana")
✅ ToDateTimeZoneOrNull("UTC-09","UTC-09")
✅ ToDateTimeZoneOrNull("UTC","UTC")
✅ TzdbZoneToWindowsTimeZoneId

✅ Octopus.Client.Tests.Extensions.TypeExtensionMethodsFixture

✅ IsClosedTypeOfOpenGenericShouldBe(Octopus.Client.Tests.Extensions.TypeExtensionMethodsFixture+SomeInt,Octopus.TinyTypes.TinyType`1[T])
✅ IsClosedTypeOfOpenGenericShouldBe(Octopus.TinyTypes.TinyType`1[System.Int32],Octopus.TinyTypes.TinyType`1[T])
✅ IsClosedTypeOfOpenGenericShouldBe(System.Int32,Octopus.TinyTypes.TinyType`1[T])

✅ Octopus.Client.Tests.HttpRequestRouting.GivenAGetPayload

✅ InvalidRoutesShouldThrow(, , )
✅ InvalidRoutesShouldThrow(, , False)
✅ InvalidRoutesShouldThrow(, 13, False)
✅ InvalidRoutesShouldThrow(, 42, )
✅ TheHttpMethodShouldBeCorrect
✅ ValidRoutesShouldResolve(!@#$%^&*()+/\, , ,"/api/some-request/!%40%23%24%25%5E%26*()%2B%2F%5C")
✅ ValidRoutesShouldResolve(foo, , ,"/api/some-request/foo")
✅ ValidRoutesShouldResolve(foo, , False,"/api/some-request/foo?baz=False")
✅ ValidRoutesShouldResolve(foo, 13, False,"/api/some-request/foo?bar=13&baz=False")
✅ ValidRoutesShouldResolve(foo, 42, ,"/api/some-request/foo?bar=42")

✅ Octopus.Client.Tests.HttpRequestRouting.GivenAPostPayload

✅ InvalidRoutesShouldThrow(, , )
✅ InvalidRoutesShouldThrow(, , False)
✅ InvalidRoutesShouldThrow(, 13, False)
✅ InvalidRoutesShouldThrow(, 42, )
✅ ValidRoutesShouldResolve(foo, , ,"/api/some-command/foo")
✅ ValidRoutesShouldResolve(foo, , False,"/api/some-command/foo")
✅ ValidRoutesShouldResolve(foo, 13, False,"/api/some-command/foo/13/False")
✅ ValidRoutesShouldResolve(foo, 42, ,"/api/some-command/foo/42")

✅ Octopus.Client.Tests.Integration.OctopusClient.AntiforgeryTokenTests

✅ AsyncClient_ShouldCopyAntiforgeryCookieToHeader
✅ SyncClient_ShouldCopyAntiforgeryCookieToHeader

✅ Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersAzureDevOpsTests

✅ AsyncClient_ShouldProvideBuildServer_WithCorrectValue
✅ SyncClient_ShouldProvideBuildServer_WithCorrectValue

✅ Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersBambooTests

✅ AsyncClient_ShouldProvideBuildServer_WithCorrectValue
✅ SyncClient_ShouldProvideBuildServer_WithCorrectValue

✅ Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersTeamCityTests

✅ AsyncClient_ShouldProvideBuildServer_WithCorrectValue
✅ SyncClient_ShouldProvideBuildServer_WithCorrectValue

✅ Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersUnspecifiedTests

✅ AsyncClient_ShouldProvideBuildServer_WithCorrectValue
✅ SyncClient_ShouldProvideBuildServer_WithCorrectValue

✅ Octopus.Client.Tests.Integration.OctopusClient.ErrorHandlingTests

✅ ShouldHandleValidationError

✅ Octopus.Client.Tests.Integration.OctopusClient.FileTests

✅ PostFile
✅ PostFileSync

✅ Octopus.Client.Tests.Integration.OctopusClient.HttpMethodTests

✅ DeleteReachesTheServer
✅ GetReturnsAValue
✅ PostingAObjectWorks
✅ PuttingAObjectWorks

✅ Octopus.Client.Tests.Integration.OctopusClient.NonJsonReturnTypeTests

✅ GetByteArray
✅ GetContent
✅ GetStream

✅ Octopus.Client.Tests.Integration.OctopusClient.StatusTests

✅ Status400
✅ Status401
✅ Status403
✅ Status404
✅ Status405
✅ Status409
✅ Status500

✅ Octopus.Client.Tests.Integration.OctopusClient.StreamTests

✅ PostStream

✅ Octopus.Client.Tests.Integration.OctopusClient.TimeoutTests

✅ CancellationThrowsOperationCanceledException
✅ ConfiguredTimeoutWorks

✅ Octopus.Client.Tests.Integration.OctopusClient.UserAgentTests

✅ AsyncClient_ShouldProvideUserAgent_WithNameAndVersion
✅ SyncClient_ShouldProvideUserAgent_WithNameAndVersion

✅ Octopus.Client.Tests.Integration.Repository.MachineRepositoryTest

✅ AsyncGetTasksReturnsAllPages
✅ StepPackageEndpointInputs_IsSerializedAsObject
✅ SyncGetTasksReturnsAllPages

✅ Octopus.Client.Tests.Integration.Repository.TenantRepositoryTest

✅ AsyncGetTasksReturnsAllPages
✅ SyncGetTasksReturnsAllPages

✅ Octopus.Client.Tests.Integration.Repository.UnauthorisedTest

✅ IfTheServerReturnsAnUnauthorisedResultASecurityExceptionShouldBeThrown

✅ Octopus.Client.Tests.Model.InterruptionResourceFixture

✅ InterruptionTypeCanBeDeserialized
✅ InterruptionTypeIsDefaultedOnConstruction
✅ InterruptionTypeIsDerivedFromTheTitleWhenItIsNotSupplied("Stop, drop and roll","ManualIntervention")
✅ InterruptionTypeIsDerivedFromTheTitleWhenItIsNotSupplied("The deployment requires failure guidance","GuidedFailure")

✅ Octopus.Client.Tests.Model.InterruptionTypeFixture

✅ DifferentValuesAreNotEqual
✅ IsNotCaseSensitive

✅ Octopus.Client.Tests.Model.NonEmptyCollectionItemAttributeFixture

✅ CollectionWithBlankStringShouldFail
✅ CollectionWithSomethingInItShouldPass
✅ EmptyCollectionShouldPass

✅ Octopus.Client.Tests.Model.PasswordComplexityAttributeFixture

✅ ShouldPassOrFail("",True)
✅ ShouldPassOrFail("a",False)
✅ ShouldPassOrFail("abc",False)
✅ ShouldPassOrFail("abdefgh",False)
✅ ShouldPassOrFail("correct horse battery stable",True)
✅ ShouldPassOrFail("password",False)
✅ ShouldPassOrFail("Password",False)
✅ ShouldPassOrFail("Password01!",True)
✅ ShouldPassOrFail("Password01",True)
✅ ShouldPassOrFail("Tr0ub4dor&3",True)

✅ Octopus.Client.Tests.Model.SemanticVersionMaskFixture

✅ ShouldApplyMask("0.i","0.0","0.1")
✅ ShouldApplyMask("1.1.i","1.1.1234","1.1.1235")
✅ ShouldApplyMask("1.2.0-alpha.c.i.i","1.2.0-alpha.2.3.4","1.2.0-alpha.2.4.0")
✅ ShouldApplyMask("1.2.0-alpha.i","1.2.3","1.2.0-alpha.1")
✅ ShouldApplyMask("1.2.c-alpha.i","1.2.3-alpha.4","1.2.3-alpha.5")
✅ ShouldApplyMask("1.c.i","1.1.5","1.1.6")
✅ ShouldApplyMask("1.c.i","1.1","1.1.1")
✅ ShouldApplyMask("1.i.1","1.1.5","1.2.1")
✅ ShouldApplyMask("1.i.c","1.1.5","1.2.0")
✅ ShouldApplyMask("1.i.i","1.1.5","1.2.0")
✅ ShouldApplyMask("1.i","1.0","1.1")
✅ ShouldApplyMask("1.i","1.1.5","1.2.0")
✅ ShouldApplyMask("2.19.i-channel","2.19.30-baz","2.19.31-channel")
✅ ShouldApplyMask("2.19.i-channel","2.19.30","2.19.31-channel")
✅ ShouldApplyMask("2.19.i","2.19.30-baz","2.19.31")
✅ ShouldApplyMask("c.c.i","1.0.1","1.0.2")
✅ ShouldBeMask("1.-i",False)
✅ ShouldBeMask("1.0-foo",False)
✅ ShouldBeMask("1.0.0-alpha.1",False)
✅ ShouldBeMask("1.0.0-alpha.beta.1",False)
✅ ShouldBeMask("1.0.0-alpha.beta9.i",True)
✅ ShouldBeMask("1.0.0-alpha.i",True)
✅ ShouldBeMask("1.0.0-alpha.i+foo",False)
✅ ShouldBeMask("1.0.0-foo",False)
✅ ShouldBeMask("1.0.0.0-foo",False)
✅ ShouldBeMask("1.0.0.0",False)
✅ ShouldBeMask("1.0.0.i",True)
✅ ShouldBeMask("1.0.0",False)
✅ ShouldBeMask("1.0.c-alpha.beta9.i",True)
✅ ShouldBeMask("1.0.c.i",True)
✅ ShouldBeMask("1.0.i",True)
✅ ShouldBeMask("1.0",False)
✅ ShouldBeMask("1.1.2-i",False)
✅ ShouldBeMask("1.i",True)
✅ ShouldBeMask("127.0.0.1-localhost",False)
✅ ShouldBeMask("127.c.0.i-localhost",True)
✅ ShouldBeMask("c.c.0",True)
✅ ShouldBeMask("c.c.c.i",True)
✅ ShouldBeMask("c.c.i.0",True)
✅ ShouldBeMask("c.c",True)
✅ ShouldBeMask("i.i.0",True)
✅ ShouldBeMask("i.i.i.i",True)
✅ ShouldBeMask("i.i.i",True)
✅ ShouldBeMask("i.i",True)
✅ ShouldCreateZeroedVersionWhenNoCurrentPresent("1.c.i","1.0.0")
✅ ShouldCreateZeroedVersionWhenNoCurrentPresent("c.i.1-foo","0.0.1-foo")
✅ ShouldCreateZeroedVersionWhenNoCurrentPresent("c.i","0.0")
✅ ShouldGetTheCorrectLatestVersion("1.i.i",["1.1.1", "2.2.1", "2.2.3", "2.3"],"1.1.1")
✅ ShouldGetTheCorrectLatestVersion("2.19.i-channel",["2.19.30-baz", "2.19.31", "2.20.0"],"2.19.31")
✅ ShouldGetTheCorrectLatestVersion("2.19.i",["2.19.30-baz", "2.19.29", "2.20.0"],"2.19.30-baz")
✅ ShouldGetTheCorrectLatestVersion("2.2.c",["1.1.1", "2.2.1", "2.2.3", "2.2"],"2.2.3")
✅ ShouldGetTheCorrectLatestVersion("2.2.i",["1.1.1", "2.2.1", "2.2.3", "2.2"],"2.2.3")
✅ ShouldGetTheCorrectLatestVersion("2.3.i",["1.1.1", "2.2.1", "2.2.3", "2.3"],"2.3")
✅ ShouldGetTheCorrectLatestVersion("2.i.i",["1.1.1", "2.2.1", "2.2.3", "2.3"],"2.3")
✅ ShouldGetTheCorrectLatestVersion("2.i",["2.19.2"],"2.19.2")
✅ ShouldGetTheCorrectLatestVersion("4.i.1-tagx",["4.0.1-tagx", "4.1", "5.0.0"],"4.1")
✅ ShouldNotMatchAnyVersions("0.1.1",["1.1.1", "2.2.1", "2.2.3", "2.3"])
✅ ShouldNotMatchAnyVersions("1.2.i",["1.1.1", "2.2.1", "2.2.3", "2.3"])
✅ ShouldNotMatchAnyVersions("2.19",["2.19.2"])
✅ ShouldNotMatchAnyVersions("2.2.4.i",["1.1.1", "2.2.1", "2.2.3", "2.3"])
✅ ShouldNotMatchAnyVersions("2.2.4.i",[])
✅ ShouldNotMatchAnyVersions("4.1.1",["1.1.1", "2.2.1", "2.2.3", "2.3"])

✅ Octopus.Client.Tests.Model.TenantVariableResourceFixture

✅ GettingLibraryVariable_Works
✅ GettingProjectVariable_Works
✅ SettingLibraryVariable_Works
✅ SettingProjectVariable_Works
✅ TryGettingLibraryVariable_Works
✅ TryGettingProjectVariable_Works

✅ Octopus.Client.Tests.Model.Versioning.VersionComparerFixture

✅ VersionComparisonDefaultEqual("1.0.0-BETA.X.y.5.77.0+AA","1.0.0-beta.x.y.5.77.0+aa")
✅ VersionComparisonDefaultEqual("1.0.0-BETA","1.0.0-beta")
✅ VersionComparisonDefaultEqual("1.0.0-BETA+AA","1.0.0-beta+aa")
✅ VersionComparisonDefaultEqual("1.0.0-BETA+AA","1.0.0-beta+aa")
✅ VersionComparisonDefaultEqual("1.0.0","1.0.0")
✅ VersionComparisonDefaultLess("0.0.0","1.0.0")
✅ VersionComparisonDefaultLess("1.0.0-BETA.X.y.5.77.0+AA","1.0.0-beta.x.y.5.79.0+aa")
✅ VersionComparisonDefaultLess("1.0.0-BETA.X.y.5.79.0+AA","1.0.0-beta.x.y.5.790.0+abc")
✅ VersionComparisonDefaultLess("1.0.0-BETA","1.0.0-beta.1+AA")
✅ VersionComparisonDefaultLess("1.0.0-BETA","1.0.0-beta2")
✅ VersionComparisonDefaultLess("1.0.0-beta+AA","1.0.0+aa")
✅ VersionComparisonDefaultLess("1.0.0","1.0.1")
✅ VersionComparisonDefaultLess("1.0.0","1.1.0")
✅ VersionComparisonDefaultLess("1.999.9999","2.1.1")
✅ VersionComparisonDefaultNotEqual("0.0.0","1.0.0")
✅ VersionComparisonDefaultNotEqual("1.0.0-BETA.X.y.5.77.0+AA","1.0.0-beta.x.y.5.79.0+aa")
✅ VersionComparisonDefaultNotEqual("1.0.0-BETA","1.0.0-beta2")
✅ VersionComparisonDefaultNotEqual("1.0.0-BETA+AA","1.0.0-beta")
✅ VersionComparisonDefaultNotEqual("1.0.0+AA","1.0.0-beta+aa")
✅ VersionComparisonDefaultNotEqual("1.0.0+AA","1.0.0+BB")
✅ VersionComparisonDefaultNotEqual("1.0.1","1.0.0")
✅ VersionComparisonDefaultNotEqual("1.0.1","1.0.0")
✅ VersionComparisonDefaultNotEqual("1.1.0","1.0.0")

✅ Octopus.Client.Tests.OctopusClientsCanBeMockedFixture

✅ WeShouldBeAbleToCreateAMockAsyncClient
✅ WeShouldBeAbleToCreateAMockClient

✅ Octopus.Client.Tests.OctopusRepositoryConventionFixture

✅ EnsureAllRepositoryPropertiesHaveBeenAdded

✅ Octopus.Client.Tests.Operations.RegisterKubernetesClusterOperationFixture

✅ ShouldCreateNewListeningKubernetesTentacle
✅ ShouldCreateNewPollingKubernetesTentacle
✅ ShouldCreateWhenCantDeserializeMachines
✅ ShouldNotOverwriteMachinePolicyToNull
✅ ShouldOnlyUpdateEndpointConnectionConfigurationOnExistingMachine
✅ ShouldOverwriteMachinePolicyWhenPassed
✅ ShouldUpdateExistingMachineWhenForceIsEnabled

✅ Octopus.Client.Tests.Operations.RegisterKubernetesDeploymentTargetOperationFixture

✅ ShouldCreateNewListeningKubernetesTentacle
✅ ShouldCreateNewPollingKubernetesTentacle
✅ ShouldCreateWhenCantDeserializeMachines
✅ ShouldNotOverwriteMachinePolicyToNull
✅ ShouldOnlyUpdateEndpointConnectionConfigurationOnExistingMachine
✅ ShouldOverwriteMachinePolicyWhenPassed
✅ ShouldUpdateExistingMachineWhenForceIsEnabled

✅ Octopus.Client.Tests.Operations.RegisterKubernetesWorkerOperationFixture

✅ ShouldCreateNewListeningKubernetesTentacle
✅ ShouldCreateNewPollingKubernetesTentacle
✅ ShouldOnlyUpdateEndpointConnectionConfigurationOnExistingWorker
✅ ShouldUpdateExistingWorkerWhenForceIsEnabled

✅ Octopus.Client.Tests.Operations.RegisterMachineOperationFixture

✅ ShouldCreateNewMachine
✅ ShouldCreateWhenCantDeserializeMachines
✅ ShouldDeduplicateEnvironments
✅ ShouldNotOverwriteMachinePolicyToNull
✅ ShouldNotThrowIfAllTenantsAreFoundByNameIdOrSlug
✅ ShouldNotUpdateExistingMachine
✅ ShouldOverwriteMachinePolicyWhenPassed
✅ ShouldThrowIfAnyEnvironmentNotFound
✅ ShouldThrowIfAnyTenantNotFoundByNameIdOrSlug
✅ ShouldThrowIfEnvironmentNameNotFound
✅ ShouldThrowIfEnvironmentNameNotFoundEvenWhenEnvironmentsHasValid
✅ ShouldThrowIfEnvironmentNotFoundByIdOrSlug
✅ ShouldThrowIfEnvironmentNotFoundBySlug
✅ ShouldUpdateExistingMachineWhenForceIsEnabled

✅ Octopus.Client.Tests.Operations.RegisterWorkerOperationFixture

✅ ShouldCreateNewWorker
✅ ShouldDeduplicateWorkerPools
✅ ShouldNotUpdateExistingWorkerWhenForceIsNotEnabled
✅ ShouldThrowIfAnyWorkerPoolNotFound
✅ ShouldThrowIfWorkerPoolNameNotFound
✅ ShouldThrowIfWorkerPoolNameNotFoundEvenWhenWorkerPoolsHaveValid
✅ ShouldThrowIfWorkerPoolNotFoundByIdOrSlug
✅ ShouldThrowIfWorkerPoolNotFoundBySlug
✅ ShouldUpdateExistingWorkerWhenForceIsEnabled
✅ Sync_ShouldCreateNewWorker
✅ Sync_ShouldDeduplicateWorkerPools
✅ Sync_ShouldNotUpdateExistingWorkerWhenForceIsNotEnabled
✅ Sync_ShouldThrowIfAnyWorkerPoolNotFound
✅ Sync_ShouldThrowIfWorkerPoolNameNotFound
✅ Sync_ShouldThrowIfWorkerPoolNameNotFoundEvenWhenWorkerPoolsHaveValid
✅ Sync_ShouldThrowIfWorkerPoolNotFoundByIdOrSlug
✅ Sync_ShouldThrowIfWorkerPoolNotFoundBySlug
✅ Sync_ShouldUpdateExistingWorkerWhenForceIsEnabled

❌ Octopus.Client.Tests.PublicSurfaceAreaFixture

❌ ThePublicSurfaceAreaShouldNotRegress
	Assent.AssentFailedException : Strings differ at 263722.
	Received:.Client.Model.DeploymentTargets
	{
	  DeploymentTargetTaskType
	  {
	      Deployment = 0
	      RunbookRun = 1
	  }
	}
	Octopus.Client.Model.DeploymentTargetTags
	{
	  class CreateDeploymentTargetTagCommand
	    Octopus.Client.Extensibility.IHaveSpaceResource
	  {
	    .ctor()
	    String SpaceId { get; set; }
	    String Tag { get; set; }
	  }
	  class CreateDeploymentTargetTagResponse
	  {
	    .ctor()
	    String
	Approved:.Client.Model.DeploymentTargets
	{
	  DeploymentTargetTaskType
	  {
	      Deployment = 0
	      RunbookRun = 1
	  }
	}
	Octopus.Client.Model.DeploymentTargetTags
	{
	  class CreateDeploymentTargetTagCommand
	  {
	    .ctor()
	    String SpaceId { get; set; }
	    String Tag { get; set; }
	  }
	  class CreateDeploymentTargetTagResponse
	  {
	    .ctor()
	    String SpaceId { get; set; }
	    String Tag { get; set; }
	

✅ Octopus.Client.Tests.Repositories.Async.BasicRepositoryFixture

✅ SpaceRepo_GetSpaceResource
✅ SpaceRepo_MixedResourceWithNoSpaceId_Ok
✅ SpaceRepo_MixedResourceWithSpaceIdSet_MatchingSpaceIdOk
✅ SpaceRepo_MixedResourceWithSpaceIdSet_NonMatchingSpaceIdThrows
✅ SpaceRepo_ResourceWithNoSpaceId_Ok
✅ SpaceRepo_ResourceWithSpaceIdSet_MatchingSpaceIdOk
✅ SpaceRepo_ResourceWithSpaceIdSet_NonMatchingSpaceIdThrows
✅ SystemRepo_GetSystemResource
✅ SystemRepo_MixedResourceNoSpaceId_Ok
✅ SystemRepo_SystemResourceNoSpaceId_Ok
✅ UnspecifiedRepo_MixedResourceNoSpaceId_Ok
✅ UnspecifiedRepo_MixedResourceWithSpaceId_Ok
✅ UnspecifiedRepo_SpaceResourceNoSpaceId_Ok
✅ UnspecifiedRepo_SpaceResourceNoSpaceIdServerVersionBeforeSpaces_Ok
✅ UnspecifiedRepo_SpaceResourceSpaceId_Ok
✅ UnspecifiedRepo_SystemResource_Ok

✅ Octopus.Client.Tests.Repositories.Async.ProjectTriggerRepositoryTest

✅ ShouldThrowExceptionForOlderServerVersions

✅ Octopus.Client.Tests.Repositories.Async.TaskRepositoryTests

✅ WaitForCompletion_CancelsInATimelyManner
✅ WaitForCompletionReportsProgress_ActionOverload
✅ WaitForCompletionReportsProgress_TaskOverload

✅ Octopus.Client.Tests.Repositories.BasicRepositoryFixture

✅ SpaceRepo_GetSpaceResource
✅ SpaceRepo_MixedResourceWithNoSpaceId_Ok
✅ SpaceRepo_MixedResourceWithSpaceIdSet_MatchingSpaceIdOk
✅ SpaceRepo_MixedResourceWithSpaceIdSet_NonMatchingSpaceIdThrows
✅ SpaceRepo_ResourceWithNoSpaceId_Ok
✅ SpaceRepo_ResourceWithSpaceIdSet_MatchingSpaceIdOk
✅ SpaceRepo_ResourceWithSpaceIdSet_NonMatchingSpaceIdThrows
✅ SystemRepo_GetSystemResource
✅ UnspecifiedRepo_MixedResourceNoSpaceId_Ok
✅ UnspecifiedRepo_MixedResourceWithSpaceId_Ok
✅ UnspecifiedRepo_SpaceResourceNoSpaceId_Ok
✅ UnspecifiedRepo_SpaceResourceNoSpaceIdDefaultSpaceMissing_Throws
✅ UnspecifiedRepo_SpaceResourceNoSpaceIdServerVersionBeforeSpaces_Ok
✅ UnspecifiedRepo_SpaceResourceSpaceId_Ok
✅ UnspecifiedRepo_SystemResource_Ok

✅ Octopus.Client.Tests.Repositories.OctopusAsyncRepositoryTests

✅ AllPropertiesAreNotNullExceptDelayInitialised

✅ Octopus.Client.Tests.Repositories.OctopusRepositoryTests

✅ AllPropertiesAreNotNullForDefaultSpaceRepository
✅ AllPropertiesAreNotNullForSystemOnlyRepository

✅ Octopus.Client.Tests.Repositories.ProjectBetaRepositoryTests

✅ MigrateVariablesToGit_CalledWithAllValues_PostsToClient
✅ MigrateVariablesToGit_DoesNotHaveMigrateLink_ThrowsError
✅ MigrateVariablesToGit_GitProjectWithVariablesAlreadyInGit_ThrowsError

✅ Octopus.Client.Tests.Repositories.ProjectRepositoryFixture

✅ ConvertToGit_HasConvertToGitAndConvertToVcsLink_UsesConvertToGitLink
✅ ConvertToGit_OnlyHasConvertToGitLink_UsesConvertToGitLink
✅ ConvertToGit_OnlyHasConvertToVcsLink_UsesConvertToVcsLink

✅ Octopus.Client.Tests.Repositories.ProjectRepositorySettingsFixture

✅ ProjectSettingsAreDeserializedCorrectly

✅ Octopus.Client.Tests.Repositories.VariableSetBetaRepositoryTests

✅ Get_ProjectDoesNotHaveGitVariables_UsesVariablesUrl
✅ Get_ProjectHasGitVariablesAndPassedGitRef_UsesVariablesUrl
✅ Get_ProjectHasGitVariablesButNotPassedGitRef_UsesSensitiveVariablesUrl
✅ Get_ProjectIsInTheDatabase_UsesVariablesUrl

✅ Octopus.Client.Tests.Serialization.ChannelVersionRuleResourceSerializationFixture

✅ ActionPackagesAreSerializedIntoLegacyActionsCollection
✅ LegacyActionsCollectionIsDeserializedIntoActionPackages_WhenTalkingToOlderServer

✅ Octopus.Client.Tests.Serialization.ControlConverterTests

✅ CanDeserializePreV3_1_6VariableValue
✅ CanDeserializeVariableValue

✅ Octopus.Client.Tests.Serialization.CrossPlatformDateTimeZoneJsonConverterFixture

✅ ShouldDeserializeDateTime
✅ ShouldDeserializeDateTimeOffset("2022-08-24T12:54:46Z",True)
✅ ShouldDeserializeDateTimeOffset("2022-08-24T20:54:46.477+8:00",True)
✅ ShouldDeserializeDateTimeOffset("2022-08-24T20:54:46",False)
✅ ShouldDeserializeDateTimeWithKindOfUtc
✅ ShouldDeserializeDateTimeZone("Australia/Brisbane")
✅ ShouldDeserializeDateTimeZone("E. Australia Standard Time")
✅ ShouldDeserializeLocalDate

✅ Octopus.Client.Tests.Serialization.EndpointConverterFixture

✅ AzureCloudService
✅ AzureServiceFabric
✅ AzureWebApp
✅ CloudRegion
✅ KubernetesApi
✅ KUbernetesTentacle
✅ ListeningTentacle
✅ OfflineDrop
✅ PollingTentacle
✅ Ssh
✅ StepPackage

✅ Octopus.Client.Tests.Serialization.FeedResourceConverterFixture

✅ ArtifactoryGenericFeedTypesDeserialize
✅ BuiltInFeedTypesDeserialize
✅ DockerFeedTypesDeserialize
✅ GitHubFeedTypesDeserialize
✅ MavenFeedTypesDeserialize
✅ MissingFeedTypeDeserializesAsFeedNuGet
✅ NuGetFeedTypesDeserialize

✅ Octopus.Client.Tests.Serialization.InheritedClassConverterFixture

✅ EnumDiscriminator
✅ StringDiscriminator
✅ TinyTypeDiscriminator

✅ Octopus.Client.Tests.Serialization.MultiIsoDateTimeFormatConverterFixture

✅ DateSerializesUsingDefaultFormat
✅ DeserializesBothFormats
✅ DeserializesNull
✅ FailureToParseReturnsNull

✅ Octopus.Client.Tests.Serialization.PermissionSerializationFixture

✅ DeserializesDictionaryKeyedOnPermissionsCorrectly
✅ DeserializesMultiplePermissionsCorrectly
✅ DeserializesPermissionsNotKnownToClientCorrectly
✅ DeserializesSinglePermissionCorrectly
✅ SerializesMultiplePermissionsCorrectly
✅ SerializesPermissionKeyedDictionaryCorrectly
✅ SerializesSinglePermissionCorrectly

✅ Octopus.Client.Tests.Serialization.PermissiveInstantJsonConverterFixture

✅ ShouldDeserializeInstantWithoutZone
✅ ShouldDeserializeInstantWithTimeZone
✅ ShouldDeserializeInstantWithUtcZone
✅ ShouldDeserializeNullInstant
✅ ShouldFailDeserializingAnInvalidInstant

✅ Octopus.Client.Tests.Serialization.TentacleConfigurationConverterFixture

✅ ListeningTentacle
✅ PollingTentacle

✅ Octopus.Client.Tests.Serialization.TinyTypeSerializationFixture

✅ DeserializesResourceTypesWithTinyTypeProperties
✅ SerializesResourceTypesWithTinyTypeProperties

✅ Octopus.Client.Tests.Serialization.VersioningStrategyResourceSerializationFixture

✅ DonorPackageIsSerializedIntoLegacyDonorPackageStepId_ForPrimaryPackage("Action 1","","Action 1")
✅ DonorPackageIsSerializedIntoLegacyDonorPackageStepId_ForPrimaryPackage("Action 1","Package 1","Action 1:Package 1")
✅ LegacyDonorPackageStepIdIsDeserializedIntoDonorPackage_WhenTalkingToOlderServer("Action 1:Package 1","Action 1","Package 1")
✅ LegacyDonorPackageStepIdIsDeserializedIntoDonorPackage_WhenTalkingToOlderServer("Action 1","Action 1",null)

✅ Octopus.Client.Tests.ServerVersionCheckFixture

✅ IsOlderThanClient_Development_False
✅ IsOlderThanClient_LowerVersion_True("2018.12.0")
✅ IsOlderThanClient_LowerVersion_True("2019.10.9")
✅ IsOlderThanClient_SameVersionOrAbove_False("2019.11.0-prerelease")
✅ IsOlderThanClient_SameVersionOrAbove_False("2019.11.0")
✅ IsOlderThanClient_SameVersionOrAbove_False("2019.11.1")
✅ IsOlderThanClient_SameVersionOrAbove_False("2019.12.0")
✅ IsOlderThanClient_SameVersionOrAbove_False("2020.0.0")

✅ Octopus.Client.Tests.Spaces.MixedScopeSpaceContextExtensionTests

✅ CannotSwitchSpaceContextWhenTheRepositoryScopeIsSpecified(Octopus.Client.RepositoryScope)
✅ CannotSwitchSpaceContextWhenTheRepositoryScopeIsSpecified(Octopus.Client.RepositoryScope)
✅ CanSwitchSpaceContextWhenRepositoryScopeIsUnspecified

✅ Octopus.Client.Tests.Spaces.SpaceIdAsyncTests

✅ Space1
✅ Space1
✅ Space2
✅ Space2
✅ Spacific spaces
✅ Specific space with system
✅ Specific spaces
✅ Specific spaces with system
✅ Specific spaces with system
✅ System only

✅ Octopus.Client.Tests.UrlTemplateTests

✅ MultipleOptionalQueryParameters_AllValuesProvided
✅ MultipleOptionalQueryParameters_SingleValueProvided
✅ NoParameters
✅ OptionalUrlAndQueryParameter_UrlAndQueryValueProvided
✅ OptionalUrlAndQueryParameter_UrlValueNotProvided
✅ ParameterProvidedThatIsNotInTemplate
✅ ParameterValueContainsNonAsciiCharacter_ShouldUrlEncodeValue
✅ ParameterValueContainsReservedCharacter_ShouldUrlEncodeValue
✅ ParameterValueContainsSmilyFace_ShouldUrlEncodeValue
✅ SingleQueryParameter
✅ SingleQueryParameterNoValueProvided
✅ SingleUrlParameter

Annotations

Check failure on line 45 in source/Octopus.Client.Tests/PublicSurfaceAreaFixture.cs

See this annotation in the file changed.

@github-actions github-actions / Windows.Net 4.8 unit test results

Octopus.Client.Tests.PublicSurfaceAreaFixture ► ThePublicSurfaceAreaShouldNotRegress

Failed test found in:
  ./TestResults/Win_net48_20240723001825.trx
Error:
  Assent.AssentFailedException : Strings differ at 263722.
  Received:.Client.Model.DeploymentTargets
  {
    DeploymentTargetTaskType
    {
        Deployment = 0
        RunbookRun = 1
    }
  }
  Octopus.Client.Model.DeploymentTargetTags
  {
    class CreateDeploymentTargetTagCommand
      Octopus.Client.Extensibility.IHaveSpaceResource
    {
      .ctor()
      String SpaceId { get; set; }
      String Tag { get; set; }
    }
    class CreateDeploymentTargetTagResponse
    {
      .ctor()
      String
  Approved:.Client.Model.DeploymentTargets
  {
    DeploymentTargetTaskType
    {
        Deployment = 0
        RunbookRun = 1
    }
  }
  Octopus.Client.Model.DeploymentTargetTags
  {
    class CreateDeploymentTargetTagCommand
    {
      .ctor()
      String SpaceId { get; set; }
      String Tag { get; set; }
    }
    class CreateDeploymentTargetTagResponse
    {
      .ctor()
      String SpaceId { get; set; }
      String Tag { get; set; }
  
Raw output
Assent.AssentFailedException : Strings differ at 263722.
Received:.Client.Model.DeploymentTargets
{
  DeploymentTargetTaskType
  {
      Deployment = 0
      RunbookRun = 1
  }
}
Octopus.Client.Model.DeploymentTargetTags
{
  class CreateDeploymentTargetTagCommand
    Octopus.Client.Extensibility.IHaveSpaceResource
  {
    .ctor()
    String SpaceId { get; set; }
    String Tag { get; set; }
  }
  class CreateDeploymentTargetTagResponse
  {
    .ctor()
    String
Approved:.Client.Model.DeploymentTargets
{
  DeploymentTargetTaskType
  {
      Deployment = 0
      RunbookRun = 1
  }
}
Octopus.Client.Model.DeploymentTargetTags
{
  class CreateDeploymentTargetTagCommand
  {
    .ctor()
    String SpaceId { get; set; }
    String Tag { get; set; }
  }
  class CreateDeploymentTargetTagResponse
  {
    .ctor()
    String SpaceId { get; set; }
    String Tag { get; set; }

   at Assent.Engine`1.Execute(IConfiguration`1 configuration, TestMetadata metadata, T recieved)
   at Assent.Extensions.Assent(Object testFixture, String recieved, Configuration configuration, String testName, String filePath)
   at Octopus.Client.Tests.PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress() in D:\a\OctopusClients\OctopusClients\source\Octopus.Client.Tests\PublicSurfaceAreaFixture.cs:line 45