Example #1
0
        public void MatchesEventSignatureAndParameterCondition()
        {
            var fromCondition = ParameterCondition.Create(
                1, ParameterConditionOperator.Equals, "0x12890d2cce102216644c59dae5baed380d84830c");

            var eventSubscription = new EventSubscription <TestData.Contracts.StandardContract.TransferEvent>(
                parameterConditions: new IParameterCondition[] { fromCondition });

            var transferLog = TestData.Contracts.StandardContract.SampleTransferLog();
            var transferWithDifferentFromAddress = TestData.Contracts.StandardContract.SampleTransferLog();

            transferWithDifferentFromAddress.Topics[1] = "0x00000000000000000000000013f022d72158410433cbd66f5dd8bf6d2d129924";

            Assert.True(eventSubscription.IsLogForEvent(transferLog));
            Assert.False(eventSubscription.IsLogForEvent(transferWithDifferentFromAddress));
        }
        public void FromEventAbis_SetsDefaultDependencies()
        {
            var state = new EventSubscriptionStateDto();
            var eventHandlerHistoryDb = new Mock <IEventHandlerHistoryRepository>().Object;
            var contractAddresses     = new[] { "0x243e72b69141f6af525a9a5fd939668ee9f2b354" };
            var parameterConditions   = new[] { ParameterCondition.Create(1, ParameterConditionOperator.Equals, "x") };

            var eventSubscription = new EventSubscription(
                TestData.Contracts.StandardContract.ContractAbi.Events,
                contractAddresses,
                parameterConditions,
                1, 2, state, eventHandlerHistoryDb);

            Assert.Equal(1, eventSubscription.Id);
            Assert.Equal(2, eventSubscription.SubscriberId);

            var eventHandlerManager = eventSubscription.HandlerManager as EventHandlerManager;

            Assert.NotNull(eventHandlerManager);
            Assert.Same(eventHandlerHistoryDb, eventHandlerManager.History);

            Assert.IsType <EventHandlerManager>(eventSubscription.HandlerManager);
            Assert.Same(state, eventSubscription.State);

            var eventMatcher = eventSubscription.Matcher as EventMatcher;

            Assert.NotNull(eventMatcher);
            var eventAddressMatcher = eventMatcher.AddressMatcher as EventAddressMatcher;

            Assert.NotNull(eventAddressMatcher);
            Assert.Equal(contractAddresses, eventAddressMatcher.AddressesToMatch);

            var parameterMatcher = eventMatcher.ParameterMatcher as EventParameterMatcher;

            Assert.NotNull(eventMatcher.ParameterMatcher);
            Assert.Equal(parameterConditions, parameterMatcher.ParameterConditions);
        }