public ContractQueryBaseTest(ContractQueryConfiguration queryConfig)
        {
            this.queryConfig = queryConfig;

            decodedEvent = DecodedEvent.Empty();

            Web3Mock web3Mock = new Web3Mock();

            var fakeResults = new List <ParameterOutput>();

            fakeResults.Add(new ParameterOutput {
                Result = FAKE_QUERY_RESULT
            });

            subscriptionState     = new EventSubscriptionStateDto();
            MockEventSubscription = new Mock <IEventSubscription>();
            MockEventSubscription.Setup(s => s.State).Returns(subscriptionState);

            contractQueryEventHandler = new ContractQueryEventHandler(MockEventSubscription.Object, 1, web3Mock.Eth, queryConfig);
            contractQueryEventHandler.QueryInterceptor = (abi, address, sig, inputs) =>
            {
                actualQueryArgs                     = new QueryArgs {
                };
                actualQueryArgs.Abi                 = abi;
                actualQueryArgs.ContractAddress     = address;
                actualQueryArgs.FunctionSignature   = sig;
                actualQueryArgs.FunctionInputValues = inputs;

                return(Task.FromResult(fakeResults));
            };
        }
        public ContractQueryBaseTest(ContractQueryConfiguration queryConfig)
        {
            this.queryConfig = queryConfig;

            decodedEvent = DecodedEvent.Empty();

            var mockContractQuery = MockContractQuery(FAKE_QUERY_RESULT, (actualArgs) => actualQueryArgs = actualArgs);

            subscriptionState     = new EventSubscriptionStateDto();
            MockEventSubscription = new Mock <IEventSubscription>();
            MockEventSubscription.Setup(s => s.State).Returns(subscriptionState);
            contractQueryEventHandler = new ContractQueryEventHandler(MockEventSubscription.Object, 1, mockContractQuery, queryConfig);
        }