예제 #1
0
        public static ILogger GetFileLogger(string path)
        {
            var logger = StoreLogger.New(NaturalInMemoryStore.New().Polls());

            logger.Store.GetPoll().SetBackgroundAction(LogicOf <IStore> .New((store) =>
            {
                var dat = StoreSerializer.SerializeStore(store, ValueManagerChainOfResponsibility.NewDefault());
                Debug.WriteLine(dat);
                dat.MakeStringable().Fileable().Filing(path).Write();
            }), 100);
            return(logger);
        }
        public IStore Send(IStore request)
        {
            //encode the store to send over the wire
            var requestText = StoreSerializer.SerializeStore(request, this.ValueManager);

            //send it
            var respData = this.Decorated.Send(requestText);

            //decode the response store
            var responseStore = StoreSerializer.DeserializeStore(respData, this.ValueManager);

            return(responseStore);
        }
        private string HandleStoreProtocolRequest(string request)
        {
            //decode the request store
            var requestStore = StoreSerializer.DeserializeStore(request, this.ValueManager);

            Condition.Requires(requestStore).IsNotNull();

            var responseStore          = NaturalInMemoryStore.New();
            Tuple <IStore, IStore> uow = new Tuple <IStore, IStore>(requestStore, responseStore);

            this.StoreProtocolLogic.Perform(uow);

            //encode the response
            var responseText = StoreSerializer.SerializeStore(uow.Item2, this.ValueManager);

            return(responseText);
        }
예제 #4
0
        public static void RunTest(this ITestable testable)
        {
            Condition.Requires(testable).IsNotNull();

            var    tests            = testable.GetTests();
            var    testStore        = testable.GenerateTestInput();
            IStore testResultsStore = NaturalInMemoryStore.New();

            tests.HandleOperations(testStore, testResultsStore);

            var errors = tests.GetErrors(testResultsStore);

            if (errors != null && errors.Count > 0)
            {
                //output the stores
                testResultsStore.JoinStore(testStore);
                var dump = StoreSerializer.SerializeStore(testResultsStore, ValueManagerChainOfResponsibility.NewDefault());
                Debug.WriteLine(dump);
                throw new InvalidOperationException("test failure");
            }
        }