public void UseDenseFormatSetter_ThrowInvaldOperationExceptionIfSettingsIsReadOnly()
        {
            PbfWriterSettings target = new PbfWriterSettings();
            target.IsReadOnly = true;

            Assert.Throws<InvalidOperationException>(() => target.UseDenseFormat = false);
        }
        public void ConpressionSetter_ThrowInvaldOperationExceptionIfSettingsIsReadOnly()
        {
            PbfWriterSettings target = new PbfWriterSettings();
            target.IsReadOnly = true;

            Assert.Throws<InvalidOperationException>(() => target.Compression = CompressionMode.ZlibDeflate);
        }
        public void Constructor__SetsDefaultValues()
        {
            PbfWriterSettings target = new PbfWriterSettings();

            Assert.Equal(true, target.UseDenseFormat);
            Assert.Equal(CompressionMode.ZlibDeflate, target.Compression);
            Assert.Equal(true, target.WriteMetadata);
        }
示例#4
0
        public void ConpressionSetter_ThrowInvaldOperationExceptionIfSettingsIsReadOnly()
        {
            PbfWriterSettings target = new PbfWriterSettings();

            target.IsReadOnly = true;

            Assert.Throws <InvalidOperationException>(() => target.Compression = CompressionMode.ZlibDeflate);
        }
示例#5
0
        public void UseDenseFormatSetter_ThrowInvaldOperationExceptionIfSettingsIsReadOnly()
        {
            PbfWriterSettings target = new PbfWriterSettings();

            target.IsReadOnly = true;

            Assert.Throws <InvalidOperationException>(() => target.UseDenseFormat = false);
        }
示例#6
0
        public void Constructor__SetsDefaultValues()
        {
            PbfWriterSettings target = new PbfWriterSettings();

            Assert.Equal(true, target.UseDenseFormat);
            Assert.Equal(CompressionMode.ZlibDeflate, target.Compression);
            Assert.Equal(true, target.WriteMetadata);
        }
示例#7
0
        public void Constructor_StreamSettings_SetsSettingsAndMakeThemReadOnly()
        {
            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(new MemoryStream(), settings)) {
                Assert.Same(settings, target.Settings);
                Assert.True(settings.IsReadOnly);
            }
        }
示例#8
0
        /// <summary>
        /// Initializes a new instance of the PbfWriter class that writes entities to specified stream with given settings.
        /// </summary>
        /// <param name="stream">The stream to write entities to.</param>
        /// <param name="settings">The settings defining behaviour of the writer.</param>
        public PbfWriter(Stream stream, PbfWriterSettings settings)
        {
            this.Settings = settings;
            this.Settings.IsReadOnly = true;
            _output = stream;
            _ownsOutputStream = false;

            this.InitializeBuffers();
            this.WriteHeader();
        }
示例#9
0
        /// <summary>
        /// Initializes a new instance of the PbfWriter class that writes entities to specified file with given settings.
        /// </summary>
        /// <param name="filename">Path to the file to write entities to.</param>
        /// <param name="settings">The settings defining behaviour of the writer.</param>
        public PbfWriter(string filename, PbfWriterSettings settings)
        {
            this.Settings = settings;
            this.Settings.IsReadOnly = true;
            _output = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite);
            _ownsOutputStream = true;

            this.InitializeBuffers();
            this.WriteHeader();
        }
示例#10
0
        public void Dispose_ClosesOutputStreamIfWritingToFiles()
        {
            string filename = PathHelper.GetTempFilePath("pbfwriter-closes-output-filestream-test.pbf");

            PbfWriterSettings settings = new PbfWriterSettings();
            PbfWriter         target   = new PbfWriter(filename, settings);

            target.Dispose();

            new FileStream(filename, FileMode.Open, FileAccess.ReadWrite);
        }
示例#11
0
        public void Constructor_StreamSettings_WritesOsmHeader()
        {
            MemoryStream      stream   = new MemoryStream();
            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                ;
            }

            Assert.True(stream.GetBuffer().Length > 0);
        }
示例#12
0
        public void Dispose_ClosesOutputStreamIfWritingToStream()
        {
            PbfWriterSettings settings = new PbfWriterSettings();
            MemoryStream      stream   = new MemoryStream();

            PbfWriter target = new PbfWriter(stream, settings);

            target.Dispose();

            Assert.False(stream.CanRead);
        }
示例#13
0
        public void Constructor_FilenameSettings_SetsSettingsAndMakesThemReadOnly()
        {
            string filename = PathHelper.GetTempFilePath("pbfwriter-constructor-test.pbf");

            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(filename, settings)) {
                Assert.Same(settings, target.Settings);
                Assert.True(settings.IsReadOnly);
            }
        }
示例#14
0
        public void Constructor_FilenameSettings_CreatesOutputFile()
        {
            string filename = "TestFiles\\pbfwriter-constructor-creates-output-test.pbf";
            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();
            using (PbfWriter target = new PbfWriter(filename, settings)) {
                ;
            }

            Assert.True(File.Exists(filename));
        }
示例#15
0
        public void Constructor_FilenameSettings_CreatesOutputFile()
        {
            string filename = PathHelper.GetTempFilePath("pbfwriter-constructor-creates-output-test.pbf");

            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(filename, settings)) {
                ;
            }

            Assert.True(File.Exists(filename));
        }
示例#16
0
        public void Constructor_FilenameSettings_SetsSettingsAndMakesThemReadOnly()
        {
            string filename = "TestFiles\\pbfwriter-constructor-test.pbf";

            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(filename, settings)) {
                Assert.Same(settings, target.Settings);
                Assert.True(settings.IsReadOnly);
            }
        }
示例#17
0
        public void Dispose_ClosesOutputStreamIfWritingToFiles()
        {
            string filename = "TestFiles\\pbfwriter-closes-output-filestream-test.pbf";

            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();
            PbfWriter         target   = new PbfWriter(filename, settings);

            target.Dispose();

            Assert.DoesNotThrow(() => new FileStream(filename, FileMode.Open, FileAccess.ReadWrite));
        }
示例#18
0
        public void Write_IOsmGeometry_ThrowsExceptionIfEntityIsNull()
        {
            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                IOsmGeometry entity = null;
                Assert.Throws <ArgumentNullException>(() => target.Write(entity));
            }
        }
示例#19
0
        public void Constructor_FilenameSettings_CreatesOutputFile()
        {
            string filename = "TestFiles\\pbfwriter-constructor-creates-output-test.pbf";

            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(filename, settings)) {
                ;
            }

            Assert.True(File.Exists(filename));
        }
示例#20
0
        public void Write_IEntityInfo_WritesRelationWithTags()
        {
            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(_relationTags);
            }

            this.TestPbfOutput(stream, _relationTags);
        }
示例#21
0
        public void Write_IEntityInfo_DoesntWritesRelationMetadataIfWriteMetasdataSettingsIsFalse()
        {
            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(_relationNodeProperties);
            }

            this.TestPbfOutput(stream, _relationNode);
        }
示例#22
0
        public void Constructor_FilenameSettings_WritesOsmHeader()
        {
            string filename = PathHelper.GetTempFilePath("pbfwriter-constructor-writes-header-test.pbf");

            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(filename, settings)) {
                ;
            }

            FileInfo fi = new FileInfo(filename);

            Assert.True(fi.Length > 0);
        }
示例#23
0
        public void Write_IEntityInfo_WritesWayWithMetadata()
        {
            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = true
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(_wayProperties);
            }

            this.TestPbfOutput(stream, _wayProperties);
        }
示例#24
0
        public void Write_IOsmGeometry_WritesNode()
        {
            Node node = new Node(1, 11.1, 12.1);
            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(node);
            }

            this.TestPbfOutput(stream, new NodeInfo(node));
        }
示例#25
0
        public void Write_IOsmGeometry_WritesWay()
        {
            Way way = new Way(10, new Node[] { new Node(1), new Node(2), new Node(3) });
            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(way);
            }

            this.TestPbfOutput(stream, new WayInfo(way));
        }
示例#26
0
        public void Write_IOsmGeometry_WritesRelation()
        {
            Relation relation = new Relation(100, new RelationMember[] { new RelationMember(new Node(1), "test-role") });

            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(relation);
            }

            this.TestPbfOutput(stream, new RelationInfo(relation));
        }
示例#27
0
        public void Constructor_FilenameSettings_WritesOsmHeader()
        {
            string filename = "TestFiles\\pbfwriter-constructor-writes-header-test.pbf";

            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();

            using (PbfWriter target = new PbfWriter(filename, settings)) {
                ;
            }

            FileInfo fi = new FileInfo(filename);

            Assert.True(fi.Length > 0);
        }
示例#28
0
        public void Write_IEntityInfo_WritesWayWithTags()
        {
            PbfWriterSettings settings = new PbfWriterSettings() { UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(_wayTags);
            }

            this.TestPbfOutput(stream, _wayTags);
        }
示例#29
0
        public void Write_IOsmGeometry_ThrowsExceptionIfEntityIsNull()
        {
            PbfWriterSettings settings = new PbfWriterSettings() { UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                IOsmGeometry entity = null;
                Assert.Throws<ArgumentNullException>(() => target.Write(entity));
            }
        }
示例#30
0
        public void Dispose_ClosesOutputStreamIfWritingToStream()
        {
            PbfWriterSettings settings = new PbfWriterSettings();
            MemoryStream stream = new MemoryStream();

            PbfWriter target = new PbfWriter(stream, settings);
            target.Dispose();

            Assert.False(stream.CanRead);
        }
示例#31
0
        public void Write_IEntityInfo_WritesRelationWithMetadata()
        {
            PbfWriterSettings settings = new PbfWriterSettings() { UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = true };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(_relationNodeProperties);
            }

            this.TestPbfOutput(stream, _relationNodeProperties);
        }
示例#32
0
        public void Write_IOsmGeometry_WritesRelation()
        {
            Relation relation = new Relation(100, new RelationMember[] { new RelationMember(new Node(1), "test-role") });

            PbfWriterSettings settings = new PbfWriterSettings() { UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(relation);
            }

            this.TestPbfOutput(stream, new RelationInfo(relation));
        }
示例#33
0
        public void Write_IOsmGeometry_WritesWay()
        {
            Way way = new Way(10, new Node[] { new Node(1), new Node(2), new Node(3) });
            PbfWriterSettings settings = new PbfWriterSettings() { UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(way);
            }

            this.TestPbfOutput(stream, new WayInfo(way));
        }
示例#34
0
        public void Constructor_FilenameSettings_SetsSettingsAndMakesThemReadOnly()
        {
            string filename = "TestFiles\\pbfwriter-constructor-test.pbf";
            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();
            using (PbfWriter target = new PbfWriter(filename, settings)) {
                Assert.Same(settings, target.Settings);
                Assert.True(settings.IsReadOnly);
            }
        }
示例#35
0
 public void Constructor_StreamSettings_SetsSettingsAndMakeThemReadOnly()
 {
     PbfWriterSettings settings = new PbfWriterSettings();
     using (PbfWriter target = new PbfWriter(new MemoryStream(), settings)) {
         Assert.Same(settings, target.Settings);
         Assert.True(settings.IsReadOnly);
     }
 }
示例#36
0
        public void Write_IOsmGeometry_WritesNode()
        {
            Node node = new Node(1, 11.1, 12.1);
            PbfWriterSettings settings = new PbfWriterSettings() { UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(node);
            }

            this.TestPbfOutput(stream, new NodeInfo(node));
        }
示例#37
0
        public void Dispose_ClosesOutputStreamIfWritingToFiles()
        {
            string filename = "TestFiles\\pbfwriter-closes-output-filestream-test.pbf";
            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();
            PbfWriter target = new PbfWriter(filename, settings);
            target.Dispose();

            Assert.DoesNotThrow(() => new FileStream(filename, FileMode.Open, FileAccess.ReadWrite));
        }
示例#38
0
        public void Constructor_FilenameSettings_WritesOsmHeader()
        {
            string filename = "TestFiles\\pbfwriter-constructor-writes-header-test.pbf";
            File.Delete(filename);

            PbfWriterSettings settings = new PbfWriterSettings();
            using (PbfWriter target = new PbfWriter(filename, settings)) {
                ;
            }

            FileInfo fi = new FileInfo(filename);
            Assert.True(fi.Length > 0);
        }
示例#39
0
        public void Constructor_StreamSettings_WritesOsmHeader()
        {
            MemoryStream stream = new MemoryStream();
            PbfWriterSettings settings = new PbfWriterSettings();
            using (PbfWriter target = new PbfWriter(stream, settings)) {
                ;
            }

            Assert.True(stream.GetBuffer().Length > 0);
        }
示例#40
0
        public void Write_IEntityInfo_DoesntWriteWayMetadataIfWriteMetadataSettingsIsFalse()
        {
            PbfWriterSettings settings = new PbfWriterSettings() { UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                target.Write(_wayProperties);
            }

            this.TestPbfOutput(stream, _way);
        }