Exemplo n.º 1
0
 /// <summary>
 /// Adds remote listener to stateless service
 /// </summary>
 public static ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> AddRemotingListener <TService>(
     this ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> builder,
     string name,
     FabricTransportRemotingListenerSettings?settings = null)
     where TService : class, IService =>
 builder
 .ConfigureServices((_, services) => services.TryAddTransient <TService>())
 .AddRemotingListener(name, (provider, _) => provider.GetRequiredService <TService>(), settings);
Exemplo n.º 2
0
 /// <summary>
 /// Adds remote listener using delegate to create <see cref="IService"/>
 /// </summary>
 public static ServiceFabricHostBuilder <TService, TContext> AddRemotingListener <TService, TContext>(
     this ServiceFabricHostBuilder <TService, TContext> builder,
     string name,
     Func <IServiceProvider, TService, IService> createService,
     FabricTransportRemotingListenerSettings?settings = null)
     where TService : IServiceFabricService <TContext>
     where TContext : ServiceContext =>
 builder.AddServiceListener(p =>
                            new GenericRemotingListenerBuilder <TService>(name, p, createService, settings));
Exemplo n.º 3
0
 /// <summary>
 /// Add Kestrel service listener to stateful service
 /// </summary>
 /// <typeparam name="TStartup">The type containing the startup methods for the web listener</typeparam>
 public static ServiceFabricHostBuilder <OmexStatefulService, StatefulServiceContext> AddKestrelListener <TStartup>(
     this ServiceFabricHostBuilder <OmexStatefulService, StatefulServiceContext> builder,
     string name,
     ServiceFabricIntegrationOptions options,
     Action <IWebHostBuilder>?builderExtension = null)
     where TStartup : class =>
 builder.AddKestrelListener <TStartup, OmexStatefulService, StatefulServiceContext>(
     name,
     options,
     builderExtension);
Exemplo n.º 4
0
 private static ServiceFabricHostBuilder <TService, TContext> AddKestrelListener <TStartup, TService, TContext>(
     this ServiceFabricHostBuilder <TService, TContext> builder,
     string name,
     ServiceFabricIntegrationOptions options,
     Action <IWebHostBuilder>?builderExtension = null,
     Action <WebHostBuilderContext, KestrelServerOptions>?kestrelOptions = null)
     where TStartup : class
     where TService : IServiceFabricService <TContext>
     where TContext : ServiceContext =>
 builder.AddServiceListener(provider => new KestrelListenerBuilder <TStartup, TService, TContext>(
Exemplo n.º 5
0
        public void AddRemotingListener_ToStatelessService_RegisterType()
        {
            HostBuilder builder = new HostBuilder();
            ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> sfBuilder =
                MockServiceFabricHostBuilder.CreateMockBuilder <OmexStatelessService, StatelessServiceContext>(builder);

            sfBuilder.AddRemotingListener <MockRemoteListenerBuilder <OmexStatelessService> >();

            IListenerBuilder <OmexStatelessService> value = builder.Build().Services.GetService <IListenerBuilder <OmexStatelessService> >();

            Assert.IsInstanceOfType(value, typeof(MockRemoteListenerBuilder <OmexStatelessService>));
        }
Exemplo n.º 6
0
        public void AddRemotingListener_ToStatefulServiceUsingIServiceType_RegisterType()
        {
            string expectedName = nameof(AddRemotingListener_ToStatefulServiceUsingIServiceType_RegisterType);
            FabricTransportRemotingListenerSettings settings = new FabricTransportRemotingListenerSettings();
            HostBuilder builder = new HostBuilder();
            ServiceFabricHostBuilder <OmexStatefulService, StatefulServiceContext> sfBuilder =
                MockServiceFabricHostBuilder.CreateMockBuilder <OmexStatefulService, StatefulServiceContext>(builder);

            sfBuilder.AddRemotingListener <MockService>(expectedName, settings);

            IListenerBuilder <OmexStatefulService> value = builder.Build().Services.GetService <IListenerBuilder <OmexStatefulService> >();

            Assert.IsInstanceOfType(value, typeof(GenericRemotingListenerBuilder <OmexStatefulService>));
            Assert.AreEqual(expectedName, value.Name);
            Assert.AreEqual(settings, GetSettings(value));
        }
Exemplo n.º 7
0
        public void AddRemotingListener_UsingFunc_RegisterType()
        {
            string expectedName = nameof(AddRemotingListener_UsingFunc_RegisterType);
            FabricTransportRemotingListenerSettings settings = new FabricTransportRemotingListenerSettings();
            HostBuilder builder = new HostBuilder();
            ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> sfBuilder =
                MockServiceFabricHostBuilder.CreateMockBuilder <OmexStatelessService, StatelessServiceContext>(builder);

            sfBuilder.AddRemotingListener(expectedName, (p, s) => new MockService(), settings);

            IListenerBuilder <OmexStatelessService> value = builder.Build().Services.GetService <IListenerBuilder <OmexStatelessService> >();

            Assert.IsNotNull(value);
            Assert.AreEqual(expectedName, value.Name);
            Assert.AreEqual(settings, GetSettings(value));
        }
Exemplo n.º 8
0
        public void AddRemotingListener_ToStatelessServiceUsingIServiceTypeThatHasUnregisteredDependency_BuildThrowsInvalidOperationException()
        {
            string expectedName = nameof(AddRemotingListener_ToStatelessServiceUsingIServiceType_RegisterType);
            FabricTransportRemotingListenerSettings settings = new FabricTransportRemotingListenerSettings();
            HostBuilder builder = new HostBuilder();
            ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> sfBuilder =
                MockServiceFabricHostBuilder.CreateMockBuilder <OmexStatelessService, StatelessServiceContext>(builder);

            sfBuilder.AddRemotingListener <MockServiceWithDependencies>(expectedName, settings);

            IListenerBuilder <OmexStatelessService> value = builder.Build().Services.GetRequiredService <IListenerBuilder <OmexStatelessService> >();

            InvalidOperationException exception = Assert.ThrowsException <InvalidOperationException>(() => value.Build(MockServiceFabricServices.MockOmexStatelessService));

            StringAssert.Contains(exception.Message, typeof(MockServiceWithDependencies).FullName);
            StringAssert.Contains(exception.Message, typeof(IMockServiceDependency).FullName);
        }
Exemplo n.º 9
0
        public void AddRemotingListener_ToStatelessServiceUsingIServiceTypeThatHasNoDependencies_BuildDoesNotThrow()
        {
            string expectedName = nameof(AddRemotingListener_ToStatelessServiceUsingIServiceType_RegisterType);
            FabricTransportRemotingListenerSettings settings = new FabricTransportRemotingListenerSettings();
            HostBuilder builder = new HostBuilder();
            ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> sfBuilder =
                MockServiceFabricHostBuilder.CreateMockBuilder <OmexStatelessService, StatelessServiceContext>(builder);

            sfBuilder.AddRemotingListener <MockService>(expectedName, settings);

            IListenerBuilder <OmexStatelessService> value = builder.Build().Services.GetRequiredService <IListenerBuilder <OmexStatelessService> >();

            ICommunicationListener service = value.Build(MockServiceFabricServices.MockOmexStatelessService);

            Assert.IsNotNull(service);
            Assert.AreEqual(expectedName, value.Name);
            Assert.AreEqual(settings, GetSettings(value));
        }
Exemplo n.º 10
0
 /// <summary>
 /// Adds remote listener to stateless service
 /// </summary>
 public static ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> AddRemotingListener <TListener>(
     this ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> builder)
     where TListener : RemotingListenerBuilder <OmexStatelessService> =>
 builder.AddServiceListener <TListener>();
Exemplo n.º 11
0
 /// <summary>
 /// Adds remote listener to stateless service
 /// </summary>
 public static ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> AddRemotingListener <TService>(
     this ServiceFabricHostBuilder <OmexStatelessService, StatelessServiceContext> builder,
     string name,
     FabricTransportRemotingListenerSettings?settings = null)
     where TService : IService =>
 builder.AddRemotingListener(name, (provider, _) => provider.GetService <TService>(), settings);