예제 #1
0
        private static JFileFields ReadAllFieldsFrom(string json)
        {
            using StringReader stringReader     = new StringReader(json);
            using JsonTextReader jsonTextReader = new JsonTextReader(stringReader);
            jsonTextReader.Read();

            JFileFields fields = new JFileFields();

            JFileReader jFileReader = new JFileReader(jsonTextReader);

            while (true)
            {
                JFileFieldType fieldType = jFileReader.MoveToNext();

                if (fieldType == JFileFieldType.None)
                {
                    break;
                }

                switch (fieldType)
                {
                case JFileFieldType.None:
                    break;

                case JFileFieldType.FileName:
                    fields.FileName = jFileReader.ReadName();
                    break;

                case JFileFieldType.FileSize:
                    fields.FileSize = jFileReader.ReadSize();
                    break;

                case JFileFieldType.LastModifiedTime:
                    fields.LastModifiedTime = jFileReader.ReadLastModifiedTime();
                    break;

                case JFileFieldType.Hash:
                    fields.FileHash = jFileReader.ReadHash();
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(fields);
        }
예제 #2
0
        public void HavingJsonNodeRepresentingFullFile_WhenJFileIsParsed_FileHashIsReadCorrectly()
        {
            JFileFields fields = ReadAllFieldsFrom(Json);

            Assert.That(fields.FileHash, Is.EqualTo(new FileHash(new byte[] { 13, 6, 80 })));
        }
예제 #3
0
        public void HavingJsonNodeRepresentingFullFile_WhenJFileIsParsed_FileSizeIsReadCorrectly()
        {
            JFileFields fields = ReadAllFieldsFrom(Json);

            Assert.That(fields.FileSize, Is.EqualTo(DataSize.FromBytes(15)));
        }
예제 #4
0
        public void HavingJsonNodeRepresentingFullFile_WhenJFileIsParsed_LastModifiedTimeIsReadCorrectly()
        {
            JFileFields fields = ReadAllFieldsFrom(Json);

            Assert.That(fields.LastModifiedTime, Is.EqualTo(new DateTime(2011, 12, 21, 11, 14, 16)));
        }
예제 #5
0
        public void HavingJsonNodeRepresentingFullFile_WhenJFileIsParsed_FileNameIsReadCorrectly()
        {
            JFileFields fields = ReadAllFieldsFrom(Json);

            Assert.That(fields.FileName, Is.EqualTo("filename.extension"));
        }