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.8 unit test results failed Jan 8, 2025 in 1s

462 passed, 1 failed and 0 skipped

Tests failed

❌ ./TestResults/Win_net48_20250108034455.trx

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

Test suite Passed Failed Skipped Time
Octo.Tests.Commands.AutomationEnvironmentProviderFixture 2✅ 239ms
Octopus.Client.Tests.Conventions.AccountTypeConventions 1✅ 27ms
Octopus.Client.Tests.Conventions.ClientConventions 21✅ 104ms
Octopus.Client.Tests.Conventions.RepositorySymmetryConventions 2✅ 4ms
Octopus.Client.Tests.DefaultLinkResolverFixture 24✅ 32ms
Octopus.Client.Tests.Exceptions.OctopusExceptionFactoryFixture 42✅ 604ms
Octopus.Client.Tests.Extensions.DateTimeExtensionsFixture 9✅ 181ms
Octopus.Client.Tests.Extensions.TypeExtensionMethodsFixture 3✅ 9ms
Octopus.Client.Tests.HttpRequestRouting.GivenAGetPayload 10✅ 1s
Octopus.Client.Tests.HttpRequestRouting.GivenAPostPayload 8✅ 721ms
Octopus.Client.Tests.Integration.OctopusClient.AntiforgeryTokenTests 2✅ 540ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersAzureDevOpsTests 2✅ 16ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersBambooTests 2✅ 14ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersTeamCityTests 2✅ 10ms
Octopus.Client.Tests.Integration.OctopusClient.BuildServerHeadersUnspecifiedTests 2✅ 11ms
Octopus.Client.Tests.Integration.OctopusClient.ErrorHandlingTests 1✅ 50ms
Octopus.Client.Tests.Integration.OctopusClient.FileTests 2✅ 50ms
Octopus.Client.Tests.Integration.OctopusClient.HttpMethodTests 4✅ 65ms
Octopus.Client.Tests.Integration.OctopusClient.NonJsonReturnTypeTests 3✅ 25ms
Octopus.Client.Tests.Integration.OctopusClient.StatusTests 7✅ 56ms
Octopus.Client.Tests.Integration.OctopusClient.StreamTests 1✅ 7ms
Octopus.Client.Tests.Integration.OctopusClient.TimeoutTests 2✅ 5s
Octopus.Client.Tests.Integration.OctopusClient.UserAgentTests 2✅ 14ms
Octopus.Client.Tests.Integration.Repository.MachineRepositoryTest 3✅ 181ms
Octopus.Client.Tests.Integration.Repository.TenantRepositoryTest 2✅ 27ms
Octopus.Client.Tests.Integration.Repository.UnauthorisedTest 1✅ 19ms
Octopus.Client.Tests.Model.InterruptionResourceFixture 4✅ 11ms
Octopus.Client.Tests.Model.InterruptionTypeFixture 2✅ 1ms
Octopus.Client.Tests.Model.NonEmptyCollectionItemAttributeFixture 3✅ 2ms
Octopus.Client.Tests.Model.PasswordComplexityAttributeFixture 10✅ 2ms
Octopus.Client.Tests.Model.SemanticVersionMaskFixture 62✅ 13ms
Octopus.Client.Tests.Model.TenantVariableResourceFixture 6✅ 43ms
Octopus.Client.Tests.Model.Versioning.VersionComparerFixture 23✅ 4ms
Octopus.Client.Tests.OctopusClientsCanBeMockedFixture 2✅ 130ms
Octopus.Client.Tests.OctopusRepositoryConventionFixture 1✅ 2ms
Octopus.Client.Tests.Operations.RegisterKubernetesClusterOperationFixture 7✅ 133ms
Octopus.Client.Tests.Operations.RegisterKubernetesDeploymentTargetOperationFixture 7✅ 24ms
Octopus.Client.Tests.Operations.RegisterKubernetesWorkerOperationFixture 4✅ 31ms
Octopus.Client.Tests.Operations.RegisterMachineOperationFixture 14✅ 42ms
Octopus.Client.Tests.Operations.RegisterWorkerOperationFixture 18✅ 73ms
Octopus.Client.Tests.PublicSurfaceAreaFixture 1❌ 144ms
Octopus.Client.Tests.Repositories.Async.BasicRepositoryFixture 16✅ 25ms
Octopus.Client.Tests.Repositories.Async.ProjectTriggerRepositoryTest 1✅ 5ms
Octopus.Client.Tests.Repositories.Async.TaskRepositoryTests 3✅ 12s
Octopus.Client.Tests.Repositories.BasicRepositoryFixture 15✅ 13ms
Octopus.Client.Tests.Repositories.OctopusAsyncRepositoryTests 1✅ 2ms
Octopus.Client.Tests.Repositories.OctopusRepositoryTests 2✅ 3ms
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✅ 10ms
Octopus.Client.Tests.Serialization.ChannelVersionRuleResourceSerializationFixture 2✅ 25ms
Octopus.Client.Tests.Serialization.ControlConverterTests 2✅ 7ms
Octopus.Client.Tests.Serialization.CrossPlatformDateTimeZoneJsonConverterFixture 8✅ 16ms
Octopus.Client.Tests.Serialization.EndpointConverterFixture 11✅ 35ms
Octopus.Client.Tests.Serialization.FeedResourceConverterFixture 7✅ 19ms
Octopus.Client.Tests.Serialization.InheritedClassConverterFixture 3✅ 8ms
Octopus.Client.Tests.Serialization.MultiIsoDateTimeFormatConverterFixture 4✅ 3ms
Octopus.Client.Tests.Serialization.PermissionSerializationFixture 7✅ 25ms
Octopus.Client.Tests.Serialization.PermissiveInstantJsonConverterFixture 5✅ 6ms
Octopus.Client.Tests.Serialization.TentacleConfigurationConverterFixture 2✅ 5ms
Octopus.Client.Tests.Serialization.TinyTypeSerializationFixture 2✅ 14ms
Octopus.Client.Tests.Serialization.VersioningStrategyResourceSerializationFixture 4✅ 9ms
Octopus.Client.Tests.ServerVersionCheckFixture 8✅ 0ms
Octopus.Client.Tests.Spaces.MixedScopeSpaceContextExtensionTests 3✅ 18ms
Octopus.Client.Tests.Spaces.SpaceIdAsyncTests 10✅ 14ms
Octopus.Client.Tests.UrlTemplateTests 12✅ 5ms

✅ 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.8 unit test results

Octopus.Client.Tests.PublicSurfaceAreaFixture ► ThePublicSurfaceAreaShouldNotRegress

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