public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            TransactionStreamResponse response = new TransactionStreamResponse();

            var jsonToken = JToken.Load(reader);

            if (jsonToken.Type == JTokenType.Object)
            {
                bool isHeartbeat = jsonToken["type"].Value <string>() == "HEARTBEAT";

                if (isHeartbeat)
                {
                    var heartbeat = new TransactionHeartbeat();
                    serializer.Populate(jsonToken.CreateReader(), heartbeat);
                    response.heartbeat = heartbeat;
                }
                else
                {
                    ITransaction transaction = TransactionFactory.Create(jsonToken["type"].Value <string>());
                    serializer.Populate(jsonToken.CreateReader(), transaction);
                    response.transaction = transaction;
                }

                return(response);
            }
            else
            {
                throw new ArgumentException(string.Format("Unexpected JTokenType ({0}) in reader.", jsonToken.Type.ToString()));
            }
        }
Exemple #2
0
        protected static void OnTransactionReceived(TransactionStreamResponse data)
        {
            if (!data.IsHeartbeat())
            {
                WriteNewLine("V20 notification - New account transaction: " + data.transaction.type);
            }

            _transactionReceived.Release();
        }
Exemple #3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Before public void setUp()
        public virtual void SetUp()
        {
            _master = mock(typeof(Master));
            _databaseAvailabilityGuard = new DatabaseAvailabilityGuard(DEFAULT_DATABASE_NAME, Clocks.fakeClock(), Instance);

            _lockManager = new CommunityLockManger(Config.defaults(), Clocks.systemClock());
            _local       = spy(_lockManager.newClient());
            _logProvider = new AssertableLogProvider();

            LockResult lockResultOk = new LockResult(LockStatus.OkLocked);
            TransactionStreamResponse <LockResult> responseOk = new TransactionStreamResponse <LockResult>(lockResultOk, null, Org.Neo4j.com.TransactionStream_Fields.Empty, Org.Neo4j.com.ResourceReleaser_Fields.NoOp);

            WhenMasterAcquireShared().thenReturn(responseOk);

            WhenMasterAcquireExclusive().thenReturn(responseOk);

            _client = new SlaveLocksClient(_master, _local, _lockManager, mock(typeof(RequestContextFactory)), _databaseAvailabilityGuard, _logProvider);
        }