From bd02bfd8685f9556a93f8b2e78d05eedb1020645 Mon Sep 17 00:00:00 2001
From: Thomas Feuvrier <thomas.feuvrier@c-s.fr>
Date: Thu, 18 Sep 2008 07:40:42 +0000
Subject: [PATCH] ENH: Add two tests to validate CanRead and CanWrite
 KMLVectorDataIO methods.

---
 Testing/Code/IO/CMakeLists.txt                | 12 +++++++
 Testing/Code/IO/otbIOTests15.cxx              |  2 ++
 .../Code/IO/otbKMLVectorDataIOTestCanRead.cxx | 36 +++++++++++++++++++
 .../IO/otbKMLVectorDataIOTestCanWrite.cxx     | 36 +++++++++++++++++++
 4 files changed, 86 insertions(+)
 create mode 100644 Testing/Code/IO/otbKMLVectorDataIOTestCanRead.cxx
 create mode 100644 Testing/Code/IO/otbKMLVectorDataIOTestCanWrite.cxx

diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt
index 9da6ca0647..fd3e1ad396 100755
--- a/Testing/Code/IO/CMakeLists.txt
+++ b/Testing/Code/IO/CMakeLists.txt
@@ -1415,6 +1415,16 @@ ADD_TEST(ioTvVectorDataFileReaderWriter ${IO_TESTS15}
 ADD_TEST(ioTuKMLVectorDataIO ${IO_TESTS15} 
         otbKMLVectorDataIONew )
 
+# CanRead()
+ADD_TEST(ioTuKMLVectorDataIOCanRead ${IO_TESTS15} 
+        otbKMLVectorDataIOTestCanRead
+        ${INPUTDATA}/simple.kml)
+
+# CanWrite()
+ADD_TEST(ioTuKMLVectorDataIOCanWrite ${IO_TESTS15} 
+        otbKMLVectorDataIOTestCanWrite
+        ${TEMP}/simple.kml)
+
 
 #----------------------------------------------------------------------------------
 SET(BasicIO_SRCS1
@@ -1526,6 +1536,8 @@ otbVectorDataFileWriter.cxx
 otbVectorDataFileReaderWriter.cxx
 otbSHPVectorDataIONew.cxx
 otbKMLVectorDataIONew.cxx
+otbKMLVectorDataIOTestCanRead.cxx
+otbKMLVectorDataIOTestCanWrite.cxx
 )
 
 
diff --git a/Testing/Code/IO/otbIOTests15.cxx b/Testing/Code/IO/otbIOTests15.cxx
index 31a6c3ea1a..5062f79ce0 100755
--- a/Testing/Code/IO/otbIOTests15.cxx
+++ b/Testing/Code/IO/otbIOTests15.cxx
@@ -36,4 +36,6 @@ REGISTER_TEST(otbVectorDataFileWriter);
 REGISTER_TEST(otbVectorDataFileReaderWriter);
 REGISTER_TEST(otbSHPVectorDataIONew);
 REGISTER_TEST(otbKMLVectorDataIONew);
+REGISTER_TEST(otbKMLVectorDataIOTestCanRead);
+REGISTER_TEST(otbKMLVectorDataIOTestCanWrite);
 }
diff --git a/Testing/Code/IO/otbKMLVectorDataIOTestCanRead.cxx b/Testing/Code/IO/otbKMLVectorDataIOTestCanRead.cxx
new file mode 100644
index 0000000000..00c714f51a
--- /dev/null
+++ b/Testing/Code/IO/otbKMLVectorDataIOTestCanRead.cxx
@@ -0,0 +1,36 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+  This software is distributed WITHOUT ANY WARRANTY; without even 
+  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+  PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+
+#include "otbKMLVectorDataIO.h"
+#include "otbVectorData.h"
+#include <iostream>
+
+int otbKMLVectorDataIOTestCanRead(int argc, char* argv[])
+{
+  typedef otb::VectorData<> VectorDataType;
+  typedef otb::KMLVectorDataIO<VectorDataType> KMLVectorDataIOType;
+  KMLVectorDataIOType::Pointer object = KMLVectorDataIOType::New();
+  bool lCanRead = object->CanReadFile(argv[1]);
+  if ( lCanRead == false)
+    {
+      std::cerr << "Erreur otb::KMLVectorDataIO : impossible to open the file "<<argv[1]<<"."<<std::endl;
+      return EXIT_FAILURE;
+    }
+  
+  return EXIT_SUCCESS;
+}
diff --git a/Testing/Code/IO/otbKMLVectorDataIOTestCanWrite.cxx b/Testing/Code/IO/otbKMLVectorDataIOTestCanWrite.cxx
new file mode 100644
index 0000000000..e4366f538b
--- /dev/null
+++ b/Testing/Code/IO/otbKMLVectorDataIOTestCanWrite.cxx
@@ -0,0 +1,36 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+  This software is distributed WITHOUT ANY WARRANTY; without even 
+  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+  PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+
+#include "otbKMLVectorDataIO.h"
+#include "otbVectorData.h"
+#include <iostream>
+
+int otbKMLVectorDataIOTestCanWrite(int argc, char* argv[])
+{
+  typedef otb::VectorData<> VectorDataType;
+  typedef otb::KMLVectorDataIO<VectorDataType> KMLVectorDataIOType;
+  KMLVectorDataIOType::Pointer object = KMLVectorDataIOType::New();
+  bool lCanRead = object->CanWriteFile(argv[1]);
+  if ( lCanRead == false)
+    {
+      std::cerr << "Erreur otb::KMLVectorDataIO : impossible to create the file "<<argv[1]<<"."<<std::endl;
+      return EXIT_FAILURE;
+    }
+  
+  return EXIT_SUCCESS;
+}
-- 
GitLab