--- /dev/null
+/*
+ Situare - A location system for Facebook
+ Copyright (C) 2010 Ixonos Plc. Authors:
+
+ Sami Rämö - sami.ramo@ixonos.com
+
+ Situare is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ version 2 as published by the Free Software Foundation.
+
+ Situare is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Situare; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA.
+*/
+
+#include <QDebug>
+
+#include "geocoordinate.h"
+
+GeoCoordinate::GeoCoordinate() :
+ m_latitude(0),
+ m_longitude(0)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+}
+
+GeoCoordinate::GeoCoordinate(double latitude, double longitude) :
+ m_latitude(latitude),
+ m_longitude(longitude)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+}
+
+bool GeoCoordinate::isNull() const
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ if (m_latitude == 0 && m_longitude == 0)
+ return true;
+
+ return false;
+}
+
+double GeoCoordinate::latitude() const
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ return m_latitude;
+}
+
+double GeoCoordinate::longitude() const
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ return m_longitude;
+}
+
+void GeoCoordinate::setLatitude(double latitude)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_latitude = latitude;
+}
+
+void GeoCoordinate::setLongitude(double longitude)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_longitude = longitude;
+}
+
+QDebug operator<<(QDebug dbg, const GeoCoordinate &coordinate)
+{
+ dbg.nospace() << "(" << coordinate.latitude() << ", " << coordinate.longitude() << ")";
+
+ return dbg.space();
+}
--- /dev/null
+/*
+ Situare - A location system for Facebook
+ Copyright (C) 2010 Ixonos Plc. Authors:
+
+ Sami Rämö - sami.ramo@ixonos.com
+
+ Situare is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ version 2 as published by the Free Software Foundation.
+
+ Situare is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Situare; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA.
+*/
+
+
+#ifndef GEOCOORDINATE_H
+#define GEOCOORDINATE_H
+
+#include <QDebug>
+
+/**
+* @brief Geographic coordinate
+*
+* @author Sami Rämö - sami.ramo@ixonos.com
+*/
+class GeoCoordinate
+{
+public:
+ /**
+ * @brief Constructs a null coordinate
+ */
+ GeoCoordinate();
+
+ /**
+ * @brief Contsructs a coordinate with given latitude and longitude values
+ *
+ * @param latitude Latitude value
+ * @param longitude Longitude value
+ */
+ GeoCoordinate(double latitude, double longitude);
+
+ /**
+ * @brief Check if coordinate is (0.0, 0.0)
+ *
+ * @returns True if both latitude and longitude are 0.0, otherwise false
+ */
+ bool isNull() const;
+
+ /**
+ * @brief Returns the latitude value
+ *
+ * @returns latitude
+ */
+ double latitude() const;
+
+ /**
+ * @brief Returns the longitude value
+ *
+ * @returns longitude
+ */
+ double longitude() const;
+
+ /**
+ * @brief Sets the latitude
+ *
+ * @param latitude Latitude value
+ */
+ void setLatitude(double latitude);
+
+ /**
+ * @brief Sets the longitude
+ *
+ * @param longitude Longitude value
+ */
+ void setLongitude(double longitude);
+
+private:
+ double m_latitude; ///< Latitude value
+ double m_longitude; ///< Longitude value
+};
+
+QDebug operator<<(QDebug dbg, const GeoCoordinate &c);
+
+#endif // GEOCOORDINATE_H
--- /dev/null
+#-------------------------------------------------
+#
+# Project created by QtCreator 2010-07-13T16:07:22
+#
+#-------------------------------------------------
+
+QT += testlib
+
+QT -= gui
+
+CONFIG += console
+CONFIG -= app_bundle
+
+TEMPLATE = app
+
+
+SOURCES += testgeocoordinate.cpp \
+ ../../../src/coordinates/geocoordinate.cpp
+DEFINES += SRCDIR=\\\"$$PWD/\\\"
+
+INCLUDEPATH += . \
+ ../../../src/
+
+HEADERS += \
+ ../../../src/coordinates/geocoordinate.h
+
+DEFINES += QT_NO_DEBUG_OUTPUT
--- /dev/null
+/*
+ Situare - A location system for Facebook
+ Copyright (C) 2010 Ixonos Plc. Authors:
+
+ Sami Rämö - sami.ramo@ixonos.com
+
+ Situare is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ version 2 as published by the Free Software Foundation.
+
+ Situare is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Situare; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA.
+*/
+
+#include <QtCore/QString>
+#include <QDebug>
+#include <QtTest/QtTest>
+
+#include "coordinates/geocoordinate.h"
+
+const double LATITUDE = 12.345678;
+const double LONGITUDE = -89.765432;
+
+class TestGeoCoordinate : public QObject
+{
+ Q_OBJECT
+
+public:
+ TestGeoCoordinate();
+
+private Q_SLOTS:
+ void constructors();
+ void isNull();
+ void settersAndGetters();
+};
+
+TestGeoCoordinate::TestGeoCoordinate()
+{
+}
+
+void TestGeoCoordinate::constructors()
+{
+ GeoCoordinate coordinate;
+ QVERIFY(coordinate.isNull());
+
+ GeoCoordinate coordinate2(LATITUDE, LONGITUDE);
+ QCOMPARE(coordinate2.latitude(), LATITUDE);
+ QCOMPARE(coordinate2.longitude(), LONGITUDE);
+}
+
+void TestGeoCoordinate::isNull()
+{
+ GeoCoordinate coordinate;
+ QVERIFY(coordinate.isNull());
+ coordinate.setLatitude(1);
+ QVERIFY(!coordinate.isNull());
+
+ GeoCoordinate coordinate2;
+ QVERIFY(coordinate2.isNull());
+ coordinate2.setLongitude(1);
+ QVERIFY(!coordinate.isNull());
+
+ GeoCoordinate coordinate3;
+ QVERIFY(coordinate3.isNull());
+ coordinate3.setLatitude(1);
+ coordinate3.setLongitude(1);
+ QVERIFY(!coordinate.isNull());
+}
+
+void TestGeoCoordinate::settersAndGetters()
+{
+ GeoCoordinate coordinate;
+ QCOMPARE(coordinate.latitude(), (double)0);
+ QCOMPARE(coordinate.longitude(), (double)0);
+
+ coordinate.setLatitude(LATITUDE);
+ coordinate.setLongitude(LONGITUDE);
+
+ QCOMPARE(coordinate.latitude(), LATITUDE);
+ QCOMPARE(coordinate.longitude(), LONGITUDE);
+}
+
+QTEST_APPLESS_MAIN(TestGeoCoordinate);
+
+#include "testgeocoordinate.moc"