Exemple #1
0
        public void FixtureSetup()
        {
            var memberName = "DefaultMember";
            var builder    = new ContainerBuilder();

            _logger = new ConsoleLogger(LogLevel.Debug);
            builder.RegisterInstance(_logger).As <ILogger>();
            _logger.Log("Registering Dependencies...");
            builder.RegisterType <DemoHelper>().As <IDemoHelper>().SingleInstance();
            builder.RegisterType <JsonNetSerializer>().As <ISerializer>().SingleInstance();
            var remoteCacheProvider = Substitute.For <IRemoteCacheProvider>();
            var subscriptionManager = Substitute.For <ISubscriptionManager>();

            builder.RegisterInstance(remoteCacheProvider).As <IRemoteCacheProvider>().SingleInstance();
            builder.RegisterInstance(subscriptionManager).As <ISubscriptionManager>().SingleInstance();
            var localCacheProvider = Substitute.For <ILocalCacheProvider>();

            builder.RegisterInstance(localCacheProvider).As <ILocalCacheProvider>().SingleInstance();
            builder.Register(
                c =>
                new GreatEagle(memberName, c.Resolve <ISubscriptionManager>(), c.Resolve <ISerializer>(),
                               c.Resolve <ILocalCacheProvider>(), c.Resolve <IRemoteCacheProvider>(),
                               c.Resolve <ILogger>())).As <ICacheObserver>().SingleInstance();
            _container = builder.Build();

            _observer = _container.Resolve <ICacheObserver>();
        }
        public void FixtureSetup()
        {
            _container = new ServiceContainer();
            _container.SetDefaultLifetime <PerContainerLifetime>();
            _container.Register <ILogger>(factory => new ConsoleLogger(LogLevel.Debug));
            _logger = _container.GetInstance <ILogger>();
            _logger.Log("Registering Dependencies...");
            _container.Register <IDemoHelper, DemoHelper>();
            _container.Register <ISerializer, JsonNetSerializer>();
            var remoteCacheProvider = Substitute.For <IRemoteCacheProvider>();
            var subscriptionManager = Substitute.For <ISubscriptionManager>();

            _container.Register <IMessagePublisher>(factory => subscriptionManager);
            _container.Register <IMessageSubscriber>(factory => subscriptionManager);
            var localCacheProvider = Substitute.For <ILocalCacheProvider>();

            _container.Register(factory => localCacheProvider);
            _container.Register <ICacheObserver>(factory
                                                 => new GreatEagle(Guid.NewGuid().ToString(), factory.GetInstance <IMessagePublisher>(), factory.GetInstance <IMessageSubscriber>(),
                                                                   factory.GetInstance <ISerializer>(), localCacheProvider, remoteCacheProvider, factory.GetInstance <ILogger>())
                                                 , TestConstants.CacheObserverName);
            _observer = _container.GetInstance <ICacheObserver>(TestConstants.CacheObserverName);
            //container.Register<ILocalCacheProviderOptions>(factory => new LocalCacheProviderOptions(factory.GetInstance<ILogger>(), factory.GetInstance<ICacheObserver>()));
            //container.Register<ICacheProvider, LittleThunder>(LocalCacheProviderName);
        }
Exemple #3
0
 public YakariPack(ILocalCacheProviderOptions localCacheProviderOptions, string tribeName, string memberName, string redisConnectionString, LogLevel loglevel)
 {
     _logger = new ConsoleLogger(loglevel);
     // Default Serializer
     _serializer = new JsonNetSerializer();
     //Redis Remote Cache Provider for Yakari
     _remoteCacheProvider = new RedisCacheProvider(redisConnectionString, _serializer, _logger);
     //Redis Subscription Manager for tribe communication.
     _subscriptionManager = new RedisSubscriptionManager(redisConnectionString, tribeName, _logger);
     // Little Thunder the Local Cache Provider
     _localCacheProvider = new LittleThunder(localCacheProviderOptions, _logger);
     // The Great Eagle
     _observer = new GreatEagle(memberName, _subscriptionManager, _serializer, _localCacheProvider, _remoteCacheProvider, _logger);
     // Great eagle start observing and loads every previous remote cache items in seperate thread
 }
Exemple #4
0
 public CacheSettings WithObserver <T>() where T : ICacheObserver, new()
 {
     Observer = new T();
     return(this);
 }
Exemple #5
0
 public static void RegisterObserver <T>() where T : ICacheObserver, new() => Observer = new T();