public void AffinitizeRequest_AffinityOptionSettingNotFound_Throw() { var provider = new ProviderStub(GetDataProtector().Object, AffinityTestHelper.GetLogger <BaseSessionAffinityProvider <string> >().Object); var options = GetOptionsWithUnknownSetting(); Assert.Throws <ArgumentException>(() => provider.AffinitizeRequest(new DefaultHttpContext(), options, new DestinationInfo("dest-A"))); }
public void AffinitizeRequest_AffinitiDisabled_DoNothing() { var dataProtector = GetDataProtector(); var provider = new ProviderStub(dataProtector.Object, AffinityTestHelper.GetLogger <BaseSessionAffinityProvider <string> >().Object); Assert.Throws <InvalidOperationException>(() => provider.AffinitizeRequest(new DefaultHttpContext(), new SessionAffinityOptions(), new DestinationInfo("id"))); }
public void FindAffinitizedDestination_AffinityDisabledOnCluster_ReturnsAffinityDisabled() { var provider = new ProviderStub(GetDataProtector().Object, AffinityTestHelper.GetLogger <BaseSessionAffinityProvider <string> >().Object); var options = new ClusterSessionAffinityOptions(false, _defaultOptions.Mode, _defaultOptions.FailurePolicy, _defaultOptions.Settings); Assert.Throws <InvalidOperationException>(() => provider.FindAffinitizedDestinations(new DefaultHttpContext(), new[] { new DestinationInfo("1") }, "cluster-1", options)); }
public void AffinitizeRequest_RequestIsAffinitized_DoNothing() { var dataProtector = GetDataProtector(); var provider = new ProviderStub(dataProtector.Object, AffinityTestHelper.GetLogger <BaseSessionAffinityProvider <string> >().Object); var context = new DefaultHttpContext(); provider.DirectlySetExtractedKeyOnContext(context, "ExtractedKey"); provider.AffinitizeRequest(context, _defaultOptions, new DestinationInfo("id")); Assert.Null(provider.LastSetEncryptedKey); dataProtector.Verify(p => p.Protect(It.IsAny <byte[]>()), Times.Never); }
public void TestGetUnsupportedMethods() { var provider = new ProviderStub(); List<UnsupportedMethod> unsupportedMethods = provider.GetUnsupportedMethods().ToList(); UnsupportedMethod dropTable = unsupportedMethods.Find(m => m.Name == "DropTable"); Assert.IsNotNull(dropTable, "DropTable should be one of the unsupported methods."); Assert.AreEqual(ProviderStub.NotSupportedMessageForDropTable, dropTable.Message); Assert.IsNull(unsupportedMethods.Find(m => m.Name == "CreateTable"), "CreateTable should be one of the supported methods."); }
public void AffinitizeRequest_RequestIsNotAffinitized_SetAffinityKey() { var dataProtector = GetDataProtector(); var provider = new ProviderStub(dataProtector.Object, AffinityTestHelper.GetLogger <BaseSessionAffinityProvider <string> >().Object); var destination = new DestinationInfo("dest-A"); provider.AffinitizeRequest(new DefaultHttpContext(), _defaultOptions, destination); Assert.Equal("ZGVzdC1B", provider.LastSetEncryptedKey); var keyBytes = Encoding.UTF8.GetBytes(destination.DestinationId); dataProtector.Verify(p => p.Protect(It.Is <byte[]>(b => b.SequenceEqual(keyBytes))), Times.Once); }
public void TestGetUnsupportedMethods() // CLEAN: move to test class of its own { var provider = new ProviderStub(); List <UnsupportedMethod> unsupportedMethods = provider.GetUnsupportedMethods().ToList(); UnsupportedMethod dropTable = unsupportedMethods.Find(m => m.Name == "DropTable"); Assert.IsNotNull(dropTable, "DropTable should be one of the unsupported methods."); Assert.AreEqual(ProviderStub.NotSupportedMessageForDropTable, dropTable.Message); Assert.IsNull(unsupportedMethods.Find(m => m.Name == "CreateTable"), "CreateTable should be one of the supported methods."); }
public void FindAffinitizedDestination_AffinityDisabledOnCluster_ReturnsAffinityDisabled() { var provider = new ProviderStub(GetDataProtector().Object, AffinityTestHelper.GetLogger <BaseSessionAffinityPolicy <string> >().Object); var options = new SessionAffinityConfig { Enabled = false, Policy = _defaultOptions.Policy, FailurePolicy = _defaultOptions.FailurePolicy, AffinityKeyName = _defaultOptions.AffinityKeyName }; var cluster = new ClusterState("cluster"); Assert.Throws <InvalidOperationException>(() => provider.FindAffinitizedDestinations(new DefaultHttpContext(), cluster, options, new[] { new DestinationState("1") })); }
private static MigrationOptions GetOptions(out IEnumerable <ProviderInfo> providerInfos) { IProviderMetadata metadata = A.Fake <IProviderMetadata>(); A.CallTo(() => metadata.MaximumDbObjectNameLength).Returns(MaximumSupportedLength); A.CallTo(() => metadata.MajorVersion).Returns(Platform.MajorVersion); A.CallTo(() => metadata.InvariantName).Returns("System.Data.Odbc"); // for the Odbc specific tests IProvider provider = new ProviderStub(); IProviderRegistry providerRegistry = A.Fake <IProviderRegistry>(); A.CallTo(() => providerRegistry.GetProvider(metadata)).Returns(provider); providerInfos = new[] { new ProviderInfo(provider, metadata) }; var options = new MigrationOptions(); options.SupportedPlatforms.AddOrReplaceMinimumRequirement(Platform); return(options); }
public void Request_FindAffinitizedDestinations( HttpContext context, DestinationState[] allDestinations, AffinityStatus expectedStatus, DestinationState expectedDestination, byte[] expectedEncryptedKey, bool unprotectCalled, LogLevel?expectedLogLevel, EventId expectedEventId) { var dataProtector = GetDataProtector(); var logger = AffinityTestHelper.GetLogger <BaseSessionAffinityPolicy <string> >(); var provider = new ProviderStub(dataProtector.Object, logger.Object); var cluster = new ClusterState("cluster"); var affinityResult = provider.FindAffinitizedDestinations(context, cluster, _defaultOptions, allDestinations); if (unprotectCalled) { dataProtector.Verify(p => p.Unprotect(It.Is <byte[]>(b => b.SequenceEqual(expectedEncryptedKey))), Times.Once); } Assert.Equal(expectedStatus, affinityResult.Status); Assert.Same(expectedDestination, affinityResult.Destinations?.FirstOrDefault()); if (expectedLogLevel != null) { logger.Verify( l => l.Log(expectedLogLevel.Value, expectedEventId, It.IsAny <It.IsAnyType>(), It.IsAny <Exception>(), (Func <It.IsAnyType, Exception, string>)It.IsAny <object>()), Times.Once); } if (expectedDestination != null) { Assert.Equal(1, affinityResult.Destinations.Count); } else { Assert.Null(affinityResult.Destinations); } }
private static MigrationOptions GetOptions() { IProviderMetadata returnedMetadata = MockRepository.GenerateStub <IProviderMetadata>(); returnedMetadata.Expect(m => m.MaximumDbObjectNameLength).Return(MaximumSupportedLength); returnedMetadata.Expect(m => m.Name).Return(ProviderName); returnedMetadata.Expect(m => m.InvariantName).Return("System.Data.Odbc"); // for the Odbc specific tests IProvider provider = new ProviderStub(); IProviderFactory providerFactory = MockRepository.GenerateStub <IProviderFactory>(); IProviderMetadata passedMetadata; providerFactory.Expect(f => f.GetProvider(ProviderName, out passedMetadata)).OutRef(returnedMetadata).Return(provider); var supportedProviders = new SupportedProviders(providerFactory); supportedProviders.Add(ProviderName); var options = new MigrationOptions(); options.SupportedProviders = supportedProviders; return(options); }
private static MigrationOptions GetOptions() { IProviderMetadata returnedMetadata = MockRepository.GenerateStub<IProviderMetadata>(); returnedMetadata.Expect(m => m.MaximumDbObjectNameLength).Return(MaximumSupportedLength); returnedMetadata.Expect(m => m.Name).Return(ProviderName); returnedMetadata.Expect(m => m.InvariantName).Return("System.Data.Odbc"); // for the Odbc specific tests IProvider provider = new ProviderStub(); IProviderFactory providerFactory = MockRepository.GenerateStub<IProviderFactory>(); IProviderMetadata passedMetadata; providerFactory.Expect(f => f.GetProvider(ProviderName, out passedMetadata)).OutRef(returnedMetadata).Return(provider); var supportedProviders = new SupportedProviders(providerFactory); supportedProviders.Add(ProviderName); var options = new MigrationOptions(); options.SupportedProviders = supportedProviders; return options; }
private static MigrationOptions GetOptions(out IEnumerable<ProviderInfo> providerInfos) { IProviderMetadata metadata = A.Fake<IProviderMetadata>(); A.CallTo(() => metadata.MaximumDbObjectNameLength).Returns(MaximumSupportedLength); A.CallTo(() => metadata.MajorVersion).Returns(Platform.MajorVersion); A.CallTo(() => metadata.InvariantName).Returns("System.Data.Odbc"); // for the Odbc specific tests IProvider provider = new ProviderStub(); IProviderFactory providerFactory = A.Fake<IProviderFactory>(); A.CallTo(() => providerFactory.GetProvider(metadata)).Returns(provider); providerInfos = new[] { new ProviderInfo(provider, metadata) }; var options = new MigrationOptions(); options.SupportedPlatforms.AddOrReplaceMinimumRequirement(Platform); return options; }