Ejemplo n.º 1
0
        public void CreateAndReadParamsWithOneParameter()
        {
            using (var paramsRec = new ParamsRecord(1))
            {
                using (var writer = new NvpWriter(paramsRec.Contents))
                {
                    writer.Write("TEST", "WHATEVER");

                    var bytes  = paramsRec.GetBytes().ToList();
                    var header = bytes[0];
                    int endOfRecord;
                    using (var receivedRec = (ParamsRecord)RecordFactory.CreateRecordFromHeader(header.Array, header.Offset, header.Count, out endOfRecord))
                    {
                        Assert.AreEqual(paramsRec.ContentLength, receivedRec.ContentLength);
                        for (int i = 1; i < bytes.Count; ++i)
                        {
                            Assert.AreEqual(-1, endOfRecord);
                            receivedRec.FeedBytes(bytes[i].Array, bytes[i].Offset, bytes[i].Count, out endOfRecord);
                        }

                        receivedRec.Contents.Position = 0;
                        using (var reader = new NvpReader(receivedRec.Contents))
                        {
                            NameValuePair onlyParameterAdded = reader.Read();
                            Assert.AreEqual("TEST", onlyParameterAdded.Name);
                            Assert.AreEqual("WHATEVER", onlyParameterAdded.Value);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void NewAllTypesOfRecords()
        {
            RecordBase rec = new BeginRequestRecord(1);

            Assert.AreEqual(RecordType.FCGIBeginRequest, rec.RecordType);

            rec = new EndRequestRecord(1);
            Assert.AreEqual(RecordType.FCGIEndRequest, rec.RecordType);

            rec = new StdinRecord(1);
            Assert.AreEqual(RecordType.FCGIStdin, rec.RecordType);

            rec = new StdoutRecord(1);
            Assert.AreEqual(RecordType.FCGIStdout, rec.RecordType);

            rec = new StderrRecord(1);
            Assert.AreEqual(RecordType.FCGIStderr, rec.RecordType);

            rec = new ParamsRecord(1);
            Assert.AreEqual(RecordType.FCGIParams, rec.RecordType);

            rec = new BeginRequestRecord(1);
            Assert.AreEqual(RecordType.FCGIBeginRequest, rec.RecordType);

            rec = new DataRecord(1);
            Assert.AreEqual(RecordType.FCGIData, rec.RecordType);
        }
Ejemplo n.º 3
0
        public void CreateAndReadParamsWithManyParameters()
        {
            int numParams = 100;

            using (var paramsRec = new ParamsRecord(1))
            {
                using (var writer = new NvpWriter(paramsRec.Contents))
                {
                    for (int i = 0; i < numParams; ++i)
                    {
                        writer.Write("TEST" + i, "WHATEVER" + i);
                    }
                }

                var bytes  = paramsRec.GetBytes().ToList();
                var header = bytes[0];
                int endOfRecord;
                using (var receivedRec = (ParamsRecord)RecordFactory.CreateRecordFromHeader(header.Array, header.Offset, header.Count, out endOfRecord))
                {
                    Assert.AreEqual(paramsRec.ContentLength, receivedRec.ContentLength);
                    for (int i = 1; i < bytes.Count; ++i)
                    {
                        Assert.AreEqual(-1, endOfRecord);
                        receivedRec.FeedBytes(bytes[i].Array, bytes[i].Offset, bytes[i].Count, out endOfRecord);
                    }

                    int paramsCount = 0;
                    receivedRec.Contents.Position = 0;
                    using (var reader = new NvpReader(receivedRec.Contents))
                    {
                        NameValuePair par;
                        while ((par = reader.Read()) != null)
                        {
                            Assert.AreEqual("TEST" + paramsCount, par.Name);
                            Assert.AreEqual("WHATEVER" + paramsCount, par.Value);
                            paramsCount++;
                        }
                    }

                    Assert.AreEqual(numParams, paramsCount);
                }
            }
        }