public void InstanceProviderCalledTest() { var instanceProvider = new TestInstanceProvider(); var behavior = new TestServiceBehavior { InstanceProvider = instanceProvider }; var factory = ExtensibilityHelper.CreateChannelFactory <SimpleService, ISimpleService>(behavior); factory.Open(); var channel = factory.CreateChannel(); var echo = channel.Echo("hello"); Assert.Equal("hello", echo); instanceProvider.WaitForReleaseAsync(TimeSpan.FromSeconds(10)).Wait(); Assert.Equal(1, instanceProvider.GetInstanceCallCount); Assert.Equal(1, instanceProvider.ReleaseInstanceCallCount); ((System.ServiceModel.Channels.IChannel)channel).Close(); factory.Close(); TestHelper.CloseServiceModelObjects((System.ServiceModel.Channels.IChannel)channel, factory); }
public void InstanceProviderReleaseCalledWithCorrectObjectTest() { var instanceProvider = new TestInstanceProvider(); var behavior = new TestServiceBehavior { InstanceProvider = instanceProvider }; System.ServiceModel.ChannelFactory <ISimpleService> factory = ExtensibilityHelper.CreateChannelFactory <SimpleService, ISimpleService>(behavior); factory.Open(); ISimpleService channel = factory.CreateChannel(); ((System.ServiceModel.Channels.IChannel)channel).Open(); string echo = channel.Echo("hello"); Assert.Equal("hello", echo); instanceProvider.WaitForReleaseAsync(TimeSpan.FromSeconds(10)).Wait(); Assert.True(instanceProvider.InstanceHashCode > 0);; Assert.Equal(instanceProvider.ReleasedInstanceHashCode, instanceProvider.InstanceHashCode); ((System.ServiceModel.Channels.IChannel)channel).Close(); factory.Close(); TestHelper.CloseServiceModelObjects((System.ServiceModel.Channels.IChannel)channel, factory); }