public void ToMessageNreBug()
        {
            var dtoMsg = new MessageDtoModelV1();
            var msg    = dtoMsg.ToMessage();

            Assert.True(msg.IsEmpty);
        }
Beispiel #2
0
        public override void Add(MessageModel msg)
        {
            if (msg == null)
            {
                throw new ArgumentNullException("msg");
            }

            if (MaxCapacity > 0 && MessageCount >= MaxCapacity)
            {
                RemoveAt(0);
            }

            var dto  = new MessageDtoModelV1(msg);
            var json = JsonSerializer.SerializeToString(dto);

            using (var cmd = Connection.CreateCommand()) {
                cmd.CommandText = "INSERT INTO Messages (JSON)" +
                                  " VALUES(@json)";
                var param = cmd.CreateParameter();
                param.ParameterName = "json";
                param.Value         = json;
                cmd.Parameters.Add(param);

                cmd.ExecuteNonQuery();
            }
            MessageCount++;
        }
Beispiel #3
0
        static void WriteMessagesToJson(IEnumerable <MessageModel> messages, TextWriter writer)
        {
            // OPT: if you are wondering why this code is handling the
            // serialization of JSON list manually instead of passing it as a
            // List<T> in a single method call to JsonSerializer.SerializeToWriter(dtoMessages)
            // then this is because it would mean that all messages from the
            // source message buffer would need to be read completely into
            // memory before serializing it into JSON and then writing the result
            // of that to the console or file. Instead this is a read one message
            // from the message buffer, copy it to a DTO object, serialize that
            // one message to JSON and then write that single JSON object to the
            // target which is a TextWriter.
            writer.Write("[");
            bool first = true;

            foreach (var message in messages)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    writer.Write(",");
                }
                var dtoMessage = new MessageDtoModelV1(message);
                JsonSerializer.SerializeToWriter(dtoMessage, writer);
            }
            writer.WriteLine("]");
            writer.Flush();
        }
        public void SerializeDeserializeComplexMessage()
        {
            var dtoMsg  = new MessageDtoModelV1(ComplexMessage);
            var json    = JsonSerializer.SerializeToString(dtoMsg);
            var dtoMsg2 = JsonSerializer.DeserializeFromString <MessageDtoModelV1>(json);

            Assert.AreEqual(dtoMsg.ToMessage(), dtoMsg2.ToMessage());
            Assert.AreEqual(ComplexMessage, dtoMsg.ToMessage());
            Assert.AreEqual(ComplexMessage, dtoMsg2.ToMessage());
        }
        public void SerializeDeserializeOnlyQuoteBug()
        {
            var msgWithOnlyQuote = new MessageBuilder().
                                   AppendText("\"").
                                   ToMessage();
            var dtoMsg  = new MessageDtoModelV1(msgWithOnlyQuote);
            var json    = JsonSerializer.SerializeToString(dtoMsg);
            var dtoMsg2 = JsonSerializer.DeserializeFromString <MessageDtoModelV1>(json);

            Assert.AreEqual(dtoMsg.ToMessage(), dtoMsg2.ToMessage());
        }
Beispiel #6
0
        static void Copy(string sourceFile, string sourceFormat,
                         string destinationFile, string destinationFormat)
        {
            if (String.IsNullOrEmpty(sourceFile))
            {
                throw new ArgumentException(_("sourceFile must not be empty."));
            }

            IMessageBuffer sourceBuffer = null, destinationBuffer = null;

            try {
                var sourceBufferType = ParseMessageBufferType(sourceFile, sourceFormat);
                sourceBuffer = CreateMessageBuffer(sourceFile, sourceBufferType);

                if (!String.IsNullOrEmpty(destinationFile))
                {
                    var destinationBufferType = ParseMessageBufferType(destinationFile,
                                                                       destinationFormat);
                    destinationBuffer = CreateMessageBuffer(destinationFile,
                                                            destinationBufferType);
                    if (destinationBuffer.Count > 0)
                    {
                        throw new InvalidOperationException(
                                  String.Format(
                                      _("Destination database {0} must be empty!"),
                                      destinationFile
                                      )
                                  );
                    }
                }

                if (destinationBuffer == null)
                {
                    // JSON pipe
                    Console.WriteLine("[");
                    var msgCount = sourceBuffer.Count;
                    var i        = 0;
                    foreach (var msg in sourceBuffer)
                    {
                        var dto  = new MessageDtoModelV1(msg);
                        var json = JsonSerializer.SerializeToString(dto);
                        if (i++ < msgCount - 1)
                        {
                            Console.WriteLine("{0},", json);
                        }
                        else
                        {
                            Console.WriteLine(json);
                        }
                    }
                    if (destinationBuffer == null)
                    {
                        Console.WriteLine("]");
                    }
                }
                else
                {
                    foreach (var msg in sourceBuffer)
                    {
                        destinationBuffer.Add(msg);
                    }
                    destinationBuffer.Flush();
                }
            } finally {
                if (sourceBuffer != null)
                {
                    sourceBuffer.Dispose();
                }
                if (destinationBuffer != null)
                {
                    destinationBuffer.Dispose();
                }
            }
        }