protected override void SetUp()
        {
            base.SetUp();
            IDocumentSerializer   serializer = new JsonNetDocumentSerializer();
            IDocumentStoreFactory store      = new FileDocumentStoreFactory(StorageBaseDir, serializer);

            RouteManager = new RouteManager();
            Service      = new SubscriptionService(store, RouteManager, MyQueueName);
            store.Create <Type, SubscriptionRegistration>().Clear();
        }
        public void WhenCreatingWithDefaultConstructorValuesItInitializesFromConfigFile()
        {
            // Arrange
            IDocumentSerializer   serializer   = new JsonNetDocumentSerializer();
            IDocumentStoreFactory store        = new FileDocumentStoreFactory(StorageBaseDir, serializer);
            IRouteManager         routeManager = new RouteManager();
            SubscriptionService   service      = new SubscriptionService(store, routeManager);

            Assert.AreEqual("Zebra", service.InputQueueName.Name);

            IList <RouteRegistration> routes = routeManager.GetRoutes().ToList();

            Assert.AreEqual(2, routes.Count);
            Assert.AreEqual("Abc.Def", routes[0].MessageFilter);
            Assert.AreEqual("Alibaba", routes[0].Destination.Name);
            Assert.AreEqual("Xyz.Qwe", routes[1].MessageFilter);
            Assert.AreEqual("RobinHat", routes[1].Destination.Name);
        }
Exemple #3
0
        /// <summary>
        /// Use file based storage for subscriptions.
        /// </summary>
        /// <param name="cfg"></param>
        /// <param name="baseDir"></param>
        /// <returns></returns>
        public static MessageBusConfiguration WithFileSubscriptionStore(this MessageBusConfiguration cfg, string baseDir)
        {
            if (cfg.ContainsKey(SubscriptionStoreFactory_SettingsKey))
            {
                throw new InvalidOperationException("You should not configure subscription store for message bus twice.");
            }

            Logger.Debug("Using plain files for storing subscription registrations.");
            Condition.Requires(cfg, "cfg").IsNotNull();
            Condition.Requires(baseDir, "baseDir").IsNotNull();

            IDocumentSerializer   documentSerializer = GetSubscriptionSerializer(cfg);
            IDocumentStoreFactory docStoreFactory    = new FileDocumentStoreFactory(baseDir, documentSerializer);

            cfg.Set(SubscriptionStoreFactory_SettingsKey, docStoreFactory);

            return(cfg);
        }
        /// <summary>
        /// Use file based storing of events and internal data structures.
        /// </summary>
        /// <param name="cfg"></param>
        /// <param name="baseDir"></param>
        /// <returns></returns>
        public static EventStoreConfiguration WithFileDocumentStore(this EventStoreConfiguration cfg, string baseDir)
        {
            if (cfg.ContainsKey(DocumentStoreFactory_SettingsKey))
            {
                throw new InvalidOperationException("You should not configure document store for event store twice.");
            }

            Logger.Debug("Using plain files for storing documents used in event store");
            Condition.Requires(cfg, "cfg").IsNotNull();
            Condition.Requires(baseDir, "baseDir").IsNotNull();

            IDocumentSerializer documentSerializer = cfg.Get <IDocumentSerializer>(DocumentSerializer_SettingsKey);

            if (documentSerializer == null)
            {
                throw new InvalidOperationException("No document serializer has been configured for event store.");
            }
            IDocumentStoreFactory docStoreFactory = new FileDocumentStoreFactory(baseDir, documentSerializer);

            cfg.Set(DocumentStoreFactory_SettingsKey, docStoreFactory);

            return(cfg);
        }
        /// <summary>
        /// Use file based storing of events and internal data structures.
        /// </summary>
        /// <param name="cfg"></param>
        /// <param name="baseDir"></param>
        /// <returns></returns>
        public static EventStoreConfiguration WithFileDocumentStore(this EventStoreConfiguration cfg, string baseDir)
        {
            if (cfg.ContainsKey(DocumentStoreFactory_SettingsKey))
            throw new InvalidOperationException("You should not configure document store for event store twice.");

              Logger.Debug("Using plain files for storing documents used in event store");
              Condition.Requires(cfg, "cfg").IsNotNull();
              Condition.Requires(baseDir, "baseDir").IsNotNull();

              IDocumentSerializer documentSerializer = cfg.Get<IDocumentSerializer>(DocumentSerializer_SettingsKey);
              if (documentSerializer == null)
            throw new InvalidOperationException("No document serializer has been configured for event store.");
              IDocumentStoreFactory docStoreFactory = new FileDocumentStoreFactory(baseDir, documentSerializer);
              cfg.Set(DocumentStoreFactory_SettingsKey, docStoreFactory);

              return cfg;
        }
 protected override void SetUp()
 {
     base.SetUp();
       IDocumentSerializer serializer = new JsonNetDocumentSerializer();
       IDocumentStoreFactory store = new FileDocumentStoreFactory(StorageBaseDir, serializer);
       RouteManager = new RouteManager();
       Service = new SubscriptionService(store, RouteManager, MyQueueName);
       store.Create<Type, SubscriptionRegistration>().Clear();
 }
        public void WhenCreatingWithDefaultConstructorValuesItInitializesFromConfigFile()
        {
            // Arrange
              IDocumentSerializer serializer = new JsonNetDocumentSerializer();
              IDocumentStoreFactory store = new FileDocumentStoreFactory(StorageBaseDir, serializer);
              IRouteManager routeManager = new RouteManager();
              SubscriptionService service = new SubscriptionService(store, routeManager);

              Assert.AreEqual("Zebra", service.InputQueueName.Name);

              IList<RouteRegistration> routes = routeManager.GetRoutes().ToList();
              Assert.AreEqual(2, routes.Count);
              Assert.AreEqual("Abc.Def", routes[0].MessageFilter);
              Assert.AreEqual("Alibaba", routes[0].Destination.Name);
              Assert.AreEqual("Xyz.Qwe", routes[1].MessageFilter);
              Assert.AreEqual("RobinHat", routes[1].Destination.Name);
        }