Replace OctopusRepositoryExtensions with methods that reuse RootResource #1592
GitHub Actions / Windows .Net 6.0 unit test results
succeeded
Aug 14, 2024 in 0s
466 passed, 0 failed and 0 skipped
✅ ./TestResults/Win_net6.0_20240814235250.trx
466 tests were completed in 30s with 466 passed, 0 failed and 0 skipped.
✅ 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(Ambiguous)
✅ 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(Moved)
✅ 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(RedirectMethod)
✅ 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(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.SslTests
✅ InvalidSslCertificateIsIgnoredWhenTheOptionIsOn
✅ InvalidSslCertificateIsRejected
✅ 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
✅ 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
Loading