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.6.2 unit test results failed Jul 23, 2024 in 0s

463 passed, 1 failed and 0 skipped

Tests failed

❌ ./TestResults/Win_net462_20240723001756.trx

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

Test suite Passed Failed Skipped Time
Octo.Tests.Commands.AutomationEnvironmentProviderFixture 2✅ 1s
Octopus.Client.Tests.Conventions.AccountTypeConventions 1✅ 181ms
Octopus.Client.Tests.Conventions.ClientConventions 22✅ 96ms
Octopus.Client.Tests.Conventions.RepositorySymmetryConventions 2✅ 1ms
Octopus.Client.Tests.DefaultLinkResolverFixture 24✅ 22ms
Octopus.Client.Tests.Exceptions.OctopusExceptionFactoryFixture 42✅ 495ms
Octopus.Client.Tests.Extensions.DateTimeExtensionsFixture 9✅ 172ms
Octopus.Client.Tests.Extensions.TypeExtensionMethodsFixture 3✅ 3ms
Octopus.Client.Tests.HttpRequestRouting.GivenAGetPayload 10✅ 5s
Octopus.Client.Tests.HttpRequestRouting.GivenAPostPayload 8✅ 630ms
Octopus.Client.Tests.Integration.OctopusClient.AntiforgeryTokenTests 2✅ 1s
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersAzureDevOpsTests 2✅ 21ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersBambooTests 2✅ 10ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersTeamCityTests 2✅ 10ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersUnspecifiedTests 2✅ 13ms
Octopus.Client.Tests.Integration.OctopusClient.ErrorHandlingTests 1✅ 36ms
Octopus.Client.Tests.Integration.OctopusClient.FileTests 2✅ 58ms
Octopus.Client.Tests.Integration.OctopusClient.HttpMethodTests 4✅ 100ms
Octopus.Client.Tests.Integration.OctopusClient.NonJsonReturnTypeTests 3✅ 22ms
Octopus.Client.Tests.Integration.OctopusClient.StatusTests 7✅ 69ms
Octopus.Client.Tests.Integration.OctopusClient.StreamTests 1✅ 6ms
Octopus.Client.Tests.Integration.OctopusClient.TimeoutTests 2✅ 5s
Octopus.Client.Tests.Integration.OctopusClient.UserAgentTests 2✅ 14ms
Octopus.Client.Tests.Integration.Repository.MachineRepositoryTest 3✅ 173ms
Octopus.Client.Tests.Integration.Repository.TenantRepositoryTest 2✅ 26ms
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✅ 17ms
Octopus.Client.Tests.Model.TenantVariableResourceFixture 6✅ 37ms
Octopus.Client.Tests.Model.Versioning.VersionComparerFixture 23✅ 3ms
Octopus.Client.Tests.OctopusClientsCanBeMockedFixture 2✅ 243ms
Octopus.Client.Tests.OctopusRepositoryConventionFixture 1✅ 2ms
Octopus.Client.Tests.Operations.RegisterKubernetesClusterOperationFixture 7✅ 161ms
Octopus.Client.Tests.Operations.RegisterKubernetesDeploymentTargetOperationFixture 7✅ 22ms
Octopus.Client.Tests.Operations.RegisterKubernetesWorkerOperationFixture 4✅ 33ms
Octopus.Client.Tests.Operations.RegisterMachineOperationFixture 14✅ 41ms
Octopus.Client.Tests.Operations.RegisterWorkerOperationFixture 18✅ 98ms
Octopus.Client.Tests.PublicSurfaceAreaFixture 1❌ 1s
Octopus.Client.Tests.Repositories.Async.BasicRepositoryFixture 16✅ 46ms
Octopus.Client.Tests.Repositories.Async.ProjectTriggerRepositoryTest 1✅ 5ms
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✅ 4ms
Octopus.Client.Tests.Repositories.ProjectBetaRepositoryTests 3✅ 12ms
Octopus.Client.Tests.Repositories.ProjectRepositoryFixture 3✅ 9ms
Octopus.Client.Tests.Repositories.ProjectRepositorySettingsFixture 1✅ 42ms
Octopus.Client.Tests.Repositories.VariableSetBetaRepositoryTests 4✅ 8ms
Octopus.Client.Tests.Serialization.ChannelVersionRuleResourceSerializationFixture 2✅ 24ms
Octopus.Client.Tests.Serialization.ControlConverterTests 2✅ 7ms
Octopus.Client.Tests.Serialization.CrossPlatformDateTimeZoneJsonConverterFixture 8✅ 15ms
Octopus.Client.Tests.Serialization.EndpointConverterFixture 11✅ 34ms
Octopus.Client.Tests.Serialization.FeedResourceConverterFixture 7✅ 20ms
Octopus.Client.Tests.Serialization.InheritedClassConverterFixture 3✅ 8ms
Octopus.Client.Tests.Serialization.MultiIsoDateTimeFormatConverterFixture 4✅ 90ms
Octopus.Client.Tests.Serialization.PermissionSerializationFixture 7✅ 24ms
Octopus.Client.Tests.Serialization.PermissiveInstantJsonConverterFixture 5✅ 7ms
Octopus.Client.Tests.Serialization.TentacleConfigurationConverterFixture 2✅ 6ms
Octopus.Client.Tests.Serialization.TinyTypeSerializationFixture 2✅ 12ms
Octopus.Client.Tests.Serialization.VersioningStrategyResourceSerializationFixture 4✅ 11ms
Octopus.Client.Tests.ServerVersionCheckFixture 8✅ 0ms
Octopus.Client.Tests.Spaces.MixedScopeSpaceContextExtensionTests 3✅ 35ms
Octopus.Client.Tests.Spaces.SpaceIdAsyncTests 10✅ 19ms
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.6.2 unit test results

Octopus.Client.Tests.PublicSurfaceAreaFixture ► ThePublicSurfaceAreaShouldNotRegress

Failed test found in:
  ./TestResults/Win_net462_20240723001756.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