public void Save_IGpxWriter_WritesDataToWriter()
        {
            var waypoint = new GpxPoint();
            var route = new GpxRoute();
            var track = new GpxTrack();

            Mock<IGpxWriter> writerM = new Mock<IGpxWriter>();
            writerM.Setup(w => w.Write(waypoint)).Verifiable();
            writerM.Setup(w => w.Write(route)).Verifiable();
            writerM.Setup(w => w.Write(track)).Verifiable();

            var target = new GpxDocument(new[] { waypoint }, new[] { route }, new[] { track });
            target.Save(writerM.Object);

            writerM.Verify(w => w.Write(waypoint), Times.Once());
            writerM.Verify(w => w.Write(route), Times.Once());
            writerM.Verify(w => w.Write(track), Times.Once());
        }
        public void Save_ThrowsExceptionIfPathIsNull()
        {
            string path = null;
            var target = new GpxDocument();

            Assert.Throws<ArgumentNullException>(() => target.Save(path));
        }
        public void Save_IGpxWriter_ThrowsExceptionIfWriterIsNull()
        {
            IGpxWriter writer = null;

            var target = new GpxDocument();
            Assert.Throws<ArgumentNullException>(() => target.Save(writer));
        }