private RedisSubscription(RedisConnectionSettings connectionSettings, Encoding encoding)
 {
     _connection = new RedisConnection(connectionSettings);
     _writer     = new RespWriter(_connection.GetStream());
     _reader     = new RespReader(_connection.GetStream());
     _encoding   = encoding ?? throw new ArgumentNullException(nameof(encoding));
 }
        public async Task SimpleConnect()
        {
            var stream     = new MemoryStream();
            var respWriter = new RespWriter(stream);
            var hi         = new SimpleStringMessage("HI {\"v\":\"1\"}");
            var ok         = new SimpleStringMessage("OK");
            await respWriter.WriteAsync(hi);

            await respWriter.WriteAsync(ok);

            stream.Position = 0;
            var transport = new Mock <IConnectionTransport>();

            transport
            .Setup(t => t.GetStreamAsync())
            .Returns(Task.FromResult((Stream)stream));
            var transportFactory = new Mock <IConnectionTransportFactory>();

            transportFactory
            .Setup(f => f.CreateTransport())
            .Returns(transport.Object);
            var configuration = new Mock <IConnectionConfiguration>();

            configuration
            .Setup(c => c.TransportFactory)
            .Returns(transportFactory.Object);
            configuration
            .Setup(c => c.Identity)
            .Returns(WorkerConnectionIdentity.GenerateNew);
            var connection = new FaktoryConnection(configuration.Object);
            await connection.ConnectAsync();
        }
Esempio n. 3
0
        public override void TestSynWithRsp1Handler(ReqReader request, RespWriter response)
        {
            string resp;

            SynWithRsp1Result = Utils.CalcForSynRsp(request.FieldBeforeList, request.Nums, request.FieldAfterList, out resp);
            response.result   = resp;
        }
Esempio n. 4
0
        public async Task <T> ExecuteAsync()
        {
            using (var writer = new RespWriter(_stream))
            {
                await WriteStartCommandAsync(writer);
                await WriteParametersAsync(writer);
                await WriteEndCommandAsync(writer);
            }

            using var reader = new RespReader(_stream);
            return(ReadResult(reader).Result);
        }
Esempio n. 5
0
        public T Execute()
        {
            using (var writer = new RespWriter(_stream))
            {
                WriteStartCommand(writer);
                WriteParameters(writer);
                WriteEndCommand(writer);
            }

            using var reader = new RespReader(_stream);
            return(ReadResult(reader).Result);
        }
Esempio n. 6
0
        private static async Task AssertWrite(string rawMessage, RespMessage message)
        {
            var stream     = new MemoryStream();
            var respWriter = new RespWriter(stream);
            await respWriter.WriteAsync(message);

            stream.Position = 0;
            var streamReader = new StreamReader(stream);
            var actual       = await streamReader.ReadToEndAsync();

            Assert.That(actual, Is.EqualTo(rawMessage));
        }
Esempio n. 7
0
        public async Task Should_write_normal_messages(string name, string rawMessage, RespMessage message)
        {
            await AssertWrite(rawMessage, message);

            var stream     = new MemoryStream();
            var respWriter = new RespWriter(stream);
            await respWriter.WriteAsync(message);

            stream.Position = 0;
            var streamReader = new StreamReader(stream);
            var actual       = await streamReader.ReadToEndAsync();

            Assert.That(actual, Is.EqualTo(rawMessage));
        }
 private static async Task WriteEndCommandAsync(RespWriter writer)
 {
     await writer.WriteEndArrayAsync();
 }
 private static async Task WriteParameterBulkStringAsync(RespWriter writer, byte[] value)
 {
     await writer.WriteBulkStringAsync(value);
 }
 private static async Task WriteParameterIntegerAsync(RespWriter writer, long value)
 {
     await writer.WriteIntegerAsync(value);
 }
 private static async Task WriteParameterSimpleStringUnsafeAsync(RespWriter writer, string value)
 {
     await writer.WriteSimpleStringUnsafeAsync(value);
 }
        private static async Task WriteStartCommandAsync(RespWriter writer, string command)
        {
            await writer.WriteStartArrayAsync();

            await writer.WriteBulkStringAsync(command);
        }