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

First pass #898

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Added Notebooks so we can exercise the the new repository methods

ca601a4
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Draft

First pass #898

Added Notebooks so we can exercise the the new repository methods
ca601a4
Select commit
Loading
Failed to load commit list.
GitHub Actions / Windows .Net 4.6.2 unit test results failed Jan 8, 2025 in 1s

462 passed, 1 failed and 0 skipped

Tests failed

❌ ./TestResults/Win_net462_20250108034425.trx

463 tests were completed in 49s with 462 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Octo.Tests.Commands.AutomationEnvironmentProviderFixture 2✅ 2s
Octopus.Client.Tests.Conventions.AccountTypeConventions 1✅ 271ms
Octopus.Client.Tests.Conventions.ClientConventions 21✅ 119ms
Octopus.Client.Tests.Conventions.RepositorySymmetryConventions 2✅ 1ms
Octopus.Client.Tests.DefaultLinkResolverFixture 24✅ 127ms
Octopus.Client.Tests.Exceptions.OctopusExceptionFactoryFixture 42✅ 470ms
Octopus.Client.Tests.Extensions.DateTimeExtensionsFixture 9✅ 214ms
Octopus.Client.Tests.Extensions.TypeExtensionMethodsFixture 3✅ 7ms
Octopus.Client.Tests.HttpRequestRouting.GivenAGetPayload 10✅ 6s
Octopus.Client.Tests.HttpRequestRouting.GivenAPostPayload 8✅ 710ms
Octopus.Client.Tests.Integration.OctopusClient.AntiforgeryTokenTests 2✅ 870ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersAzureDevOpsTests 2✅ 16ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersBambooTests 2✅ 9ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersTeamCityTests 2✅ 10ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersUnspecifiedTests 2✅ 10ms
Octopus.Client.Tests.Integration.OctopusClient.ErrorHandlingTests 1✅ 40ms
Octopus.Client.Tests.Integration.OctopusClient.FileTests 2✅ 53ms
Octopus.Client.Tests.Integration.OctopusClient.HttpMethodTests 4✅ 76ms
Octopus.Client.Tests.Integration.OctopusClient.NonJsonReturnTypeTests 3✅ 26ms
Octopus.Client.Tests.Integration.OctopusClient.StatusTests 7✅ 57ms
Octopus.Client.Tests.Integration.OctopusClient.StreamTests 1✅ 7ms
Octopus.Client.Tests.Integration.OctopusClient.TimeoutTests 2✅ 5s
Octopus.Client.Tests.Integration.OctopusClient.UserAgentTests 2✅ 16ms
Octopus.Client.Tests.Integration.Repository.MachineRepositoryTest 3✅ 186ms
Octopus.Client.Tests.Integration.Repository.TenantRepositoryTest 2✅ 26ms
Octopus.Client.Tests.Integration.Repository.UnauthorisedTest 1✅ 18ms
Octopus.Client.Tests.Model.InterruptionResourceFixture 4✅ 10ms
Octopus.Client.Tests.Model.InterruptionTypeFixture 2✅ 1ms
Octopus.Client.Tests.Model.NonEmptyCollectionItemAttributeFixture 3✅ 2ms
Octopus.Client.Tests.Model.PasswordComplexityAttributeFixture 10✅ 1ms
Octopus.Client.Tests.Model.SemanticVersionMaskFixture 62✅ 14ms
Octopus.Client.Tests.Model.TenantVariableResourceFixture 6✅ 38ms
Octopus.Client.Tests.Model.Versioning.VersionComparerFixture 23✅ 2ms
Octopus.Client.Tests.OctopusClientsCanBeMockedFixture 2✅ 229ms
Octopus.Client.Tests.OctopusRepositoryConventionFixture 1✅ 2ms
Octopus.Client.Tests.Operations.RegisterKubernetesClusterOperationFixture 7✅ 133ms
Octopus.Client.Tests.Operations.RegisterKubernetesDeploymentTargetOperationFixture 7✅ 21ms
Octopus.Client.Tests.Operations.RegisterKubernetesWorkerOperationFixture 4✅ 34ms
Octopus.Client.Tests.Operations.RegisterMachineOperationFixture 14✅ 42ms
Octopus.Client.Tests.Operations.RegisterWorkerOperationFixture 18✅ 102ms
Octopus.Client.Tests.PublicSurfaceAreaFixture 1❌ 665ms
Octopus.Client.Tests.Repositories.Async.BasicRepositoryFixture 16✅ 44ms
Octopus.Client.Tests.Repositories.Async.ProjectTriggerRepositoryTest 1✅ 6ms
Octopus.Client.Tests.Repositories.Async.TaskRepositoryTests 3✅ 11s
Octopus.Client.Tests.Repositories.BasicRepositoryFixture 15✅ 11ms
Octopus.Client.Tests.Repositories.OctopusAsyncRepositoryTests 1✅ 2ms
Octopus.Client.Tests.Repositories.OctopusRepositoryTests 2✅ 4ms
Octopus.Client.Tests.Repositories.ProjectBetaRepositoryTests 3✅ 11ms
Octopus.Client.Tests.Repositories.ProjectRepositoryFixture 3✅ 8ms
Octopus.Client.Tests.Repositories.ProjectRepositorySettingsFixture 1✅ 32ms
Octopus.Client.Tests.Repositories.VariableSetBetaRepositoryTests 4✅ 11ms
Octopus.Client.Tests.Serialization.ChannelVersionRuleResourceSerializationFixture 2✅ 27ms
Octopus.Client.Tests.Serialization.ControlConverterTests 2✅ 8ms
Octopus.Client.Tests.Serialization.CrossPlatformDateTimeZoneJsonConverterFixture 8✅ 16ms
Octopus.Client.Tests.Serialization.EndpointConverterFixture 11✅ 34ms
Octopus.Client.Tests.Serialization.FeedResourceConverterFixture 7✅ 21ms
Octopus.Client.Tests.Serialization.InheritedClassConverterFixture 3✅ 8ms
Octopus.Client.Tests.Serialization.MultiIsoDateTimeFormatConverterFixture 4✅ 31ms
Octopus.Client.Tests.Serialization.PermissionSerializationFixture 7✅ 24ms
Octopus.Client.Tests.Serialization.PermissiveInstantJsonConverterFixture 5✅ 10ms
Octopus.Client.Tests.Serialization.TentacleConfigurationConverterFixture 2✅ 5ms
Octopus.Client.Tests.Serialization.TinyTypeSerializationFixture 2✅ 12ms
Octopus.Client.Tests.Serialization.VersioningStrategyResourceSerializationFixture 4✅ 9ms
Octopus.Client.Tests.ServerVersionCheckFixture 8✅ 0ms
Octopus.Client.Tests.Spaces.MixedScopeSpaceContextExtensionTests 3✅ 19ms
Octopus.Client.Tests.Spaces.SpaceIdAsyncTests 10✅ 14ms
Octopus.Client.Tests.UrlTemplateTests 12✅ 6ms

✅ Octo.Tests.Commands.AutomationEnvironmentProviderFixture

✅ EnvironmentIsKnownIfBuildVariablesHaveValues
✅ EnvironmentIsUnknownIfBuildVariablesDontHaveValues

✅ Octopus.Client.Tests.Conventions.AccountTypeConventions

✅ AllAccountResourceTypeCanBeMappedToAnAccountType

✅ Octopus.Client.Tests.Conventions.ClientConventions

✅ AllAsyncRepositoriesShouldBeAvailableViaIOctopusAsyncRepository
✅ AllAsyncRepositoryInterfacesShouldFollowTheseConventions
✅ AllRepositoriesShouldExposePublicMembersViaTheirInterfaces
✅ AllRepositoriesShouldImplementNonGenericSimpleInterface
✅ AllResourcePropertiesShouldHavePublicGetters
✅ 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("",OctopusMethodNotAllowedFoundException: )
✅ CreatedOctopusMethodNotAllowedFoundException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",OctopusMethodNotAllowedFoundException: Error Message)
✅ CreatedOctopusResourceNotFoundException_ShouldContainPayloadInformation("",OctopusResourceNotFoundException: )
✅ CreatedOctopusResourceNotFoundException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",OctopusResourceNotFoundException: Error Message)
✅ CreatedOctopusSecurityException_ShouldContainPayloadInformation("",OctopusSecurityException: )
✅ CreatedOctopusSecurityException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"HelpText\": \"Help Text\",\r\n  \"Random\": \"not relevant\"\r\n}",OctopusSecurityException: Error Message)
✅ CreatedOctopusSecurityException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",OctopusSecurityException: Error Message)
✅ CreatedOctopusServerException_ShouldContainPayloadInformation("",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}",OctopusServerException: Full Exception)
✅ CreatedOctopusServerException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"HelpText\": \"Help Text\",\r\n  \"Random\": \"not relevant\"\r\n}",OctopusServerException: Error Message)
✅ CreatedOctopusServerException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",OctopusServerException: Error Message)
✅ CreatedOctopusValidationException_ShouldContainPayloadInformation("",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}",OctopusValidationException: Error Message

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


)
✅ CreatedOctopusValidationException_ShouldContainPayloadInformation("{\r\n  \"ErrorMessage\": \"Error Message\",\r\n  \"Random\": \"not relevant\"\r\n}",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 55219.
	Received:rs.RunbookProcessEditor RunbookProcess { get; }
	    Octopus.Client.Editors.RunbookEditor CreateOrModify(Octopus.Client.Model.ProjectResource, String, String)
	    Octopus.Client.Editors.RunbookEditor CreateOrModifyInGit(Octopus.Client.Model.ProjectResource, String, String, String, String, String)
	    Octopus.Client.Editors.RunbookEditor Customize(Action<RunbookResource>)
	    Octopus.Client.Editors.
	Approved:rs.RunbookProcessEditor RunbookProcess { get; }
	    Octopus.Client.Editors.RunbookEditor CreateOrModify(Octopus.Client.Model.ProjectResource, String, String)
	    Octopus.Client.Editors.RunbookEditor Customize(Action<RunbookResource>)
	    Octopus.Client.Editors.RunbookEditor Load(String)
	    Octopus.Client.Editors.RunbookEditor Save()
	  }
	  class RunbookProcessEditor
	    Octopus.Client.Editors.IRes

✅ 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_20250108034425.trx
Error:
  Assent.AssentFailedException : Strings differ at 55219.
  Received:rs.RunbookProcessEditor RunbookProcess { get; }
      Octopus.Client.Editors.RunbookEditor CreateOrModify(Octopus.Client.Model.ProjectResource, String, String)
      Octopus.Client.Editors.RunbookEditor CreateOrModifyInGit(Octopus.Client.Model.ProjectResource, String, String, String, String, String)
      Octopus.Client.Editors.RunbookEditor Customize(Action<RunbookResource>)
      Octopus.Client.Editors.
  Approved:rs.RunbookProcessEditor RunbookProcess { get; }
      Octopus.Client.Editors.RunbookEditor CreateOrModify(Octopus.Client.Model.ProjectResource, String, String)
      Octopus.Client.Editors.RunbookEditor Customize(Action<RunbookResource>)
      Octopus.Client.Editors.RunbookEditor Load(String)
      Octopus.Client.Editors.RunbookEditor Save()
    }
    class RunbookProcessEditor
      Octopus.Client.Editors.IRes
Raw output
Assent.AssentFailedException : Strings differ at 55219.
Received:rs.RunbookProcessEditor RunbookProcess { get; }
    Octopus.Client.Editors.RunbookEditor CreateOrModify(Octopus.Client.Model.ProjectResource, String, String)
    Octopus.Client.Editors.RunbookEditor CreateOrModifyInGit(Octopus.Client.Model.ProjectResource, String, String, String, String, String)
    Octopus.Client.Editors.RunbookEditor Customize(Action<RunbookResource>)
    Octopus.Client.Editors.
Approved:rs.RunbookProcessEditor RunbookProcess { get; }
    Octopus.Client.Editors.RunbookEditor CreateOrModify(Octopus.Client.Model.ProjectResource, String, String)
    Octopus.Client.Editors.RunbookEditor Customize(Action<RunbookResource>)
    Octopus.Client.Editors.RunbookEditor Load(String)
    Octopus.Client.Editors.RunbookEditor Save()
  }
  class RunbookProcessEditor
    Octopus.Client.Editors.IRes
   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