public void Item_ReturnsRelationWithSpecificID() { OsmDatabase <IOsmGeometry, Node, Way, Relation> target = new OsmDatabase <IOsmGeometry, Node, Way, Relation>(_data); IOsmGeometry entity = target[_relationData[0].ID, EntityType.Relation]; Assert.Same(_relationData[0], entity); }
/// <summary> /// Initializes a new instance of the RelationMember class with specified Role and Member. /// </summary> /// <param name="member">The member of this RelationMember.</param> /// <param name="role">The Role of this member in the relation.</param> public RelationMember(IOsmGeometry member, string role) : base() { if (member == null) { throw new ArgumentNullException("member"); } this.Member = member; this.Role = role; if (member is Node) { this.MemberType = EntityType.Node; } else if (member is Way) { this.MemberType = EntityType.Way; } else if (member is Relation) { this.MemberType = EntityType.Relation; } else { throw new ArgumentException("Unknown member type."); } }
public void Item_ReturnsEntityWitSpecificID() { EntityCollection <IOsmGeometry> target = new EntityCollection <IOsmGeometry>(_data); IOsmGeometry entity = target[1]; Assert.Equal(1, entity.ID); }
public void Write_IOsmGeometry_ThrowsExceptionIfEntityIsNull() { MemoryStream stream = new MemoryStream(); using (OsmXmlWriter target = new OsmXmlWriter(stream, new OsmWriterSettings() { WriteMetadata = false })) { IOsmGeometry entity = null; Assert.Throws <ArgumentNullException>(() => target.Write(entity)); } }
public void CopyTo_CopiesEntitiesToArray() { OsmDatabase <IOsmGeometry, Node, Way, Relation> target = new OsmDatabase <IOsmGeometry, Node, Way, Relation>(_data); IOsmGeometry[] array = new IOsmGeometry[_data.Length]; target.CopyTo(array, 0); for (int i = 0; i < _data.Length; i++) { Assert.Same(_data[i], array[i]); } }
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)); } }
/// <summary> /// Writes specified entity object in XML format to the underlaying stream. /// </summary> /// <param name="entity">Entity to write.</param> public void Write(IOsmGeometry entity) { if (entity == null) { throw new ArgumentNullException("Entity cannot be null", "entity"); } if (_isInsideOsm == false) { this.StartDocument(); } switch (entity.EntityType) { case EntityType.Node: this.Write(new NodeInfo((Node)entity)); break; case EntityType.Way: this.Write(new WayInfo((Way)entity)); break; case EntityType.Relation: this.Write(new RelationInfo((Relation)entity)); break; } }
/// <summary> /// Writes specific IOsmGeometry in PBF format to the underlaying stream. /// </summary> /// <param name="entity">Entity to write.</param> /// <remarks> /// PbfWriter uses internal buffers and writes entities to the output stream in blocks. To force PbfWriter to clear internal buffers and write data to the underlaying stream use Flush() function. /// </remarks> public void Write(IOsmGeometry entity) { if (entity == null) { throw new ArgumentNullException("Entity cannot be null", "entity"); } switch (entity.EntityType) { case EntityType.Node: this.Write(new NodeInfo((Geometries.Node)entity)); break; case EntityType.Way: this.Write(new WayInfo((Geometries.Way)entity)); break; case EntityType.Relation: this.Write(new RelationInfo((Geometries.Relation)entity)); break; } }
public void CopyTo_CopiesEntitiesToArray() { OsmDatabase<IOsmGeometry, Node, Way, Relation> target = new OsmDatabase<IOsmGeometry, Node, Way, Relation>(_data); IOsmGeometry[] array = new IOsmGeometry[_data.Length]; target.CopyTo(array, 0); for (int i = 0; i < _data.Length; i++) { Assert.Same(_data[i], array[i]); } }
/// <summary> /// Initializes a new instance of the RelationMember class with empty Role and specified Member. /// </summary> /// <param name="member">The member of this RelatioinMember.</param> public RelationMember(IOsmGeometry member) : this(member, null) { }