1 // LAF Base Library
2 // Copyright (c) 2001-2016 David Capello
3 //
4 // This file is released under the terms of the MIT license.
5 // Read LICENSE.txt for more information.
6 
7 #include <gtest/gtest.h>
8 
9 #include "base/version.h"
10 #include "base/convert_to.h"
11 
12 using namespace base;
13 
14 namespace base {
15 
operator <<(std::ostream & os,const Version & ver)16   std::ostream& operator<<(std::ostream& os, const Version& ver) {
17     return os << ver.str();
18   }
19 
20 }
21 
TEST(Version,Ctor)22 TEST(Version, Ctor)
23 {
24   EXPECT_EQ("1", Version("1").str());
25   EXPECT_EQ("1.2", Version("1.2").str());
26   EXPECT_EQ("1.2-rc3", Version("1.2-rc3").str());
27   EXPECT_EQ("1.2-beta3", Version("1.2-beta3").str());
28   EXPECT_EQ("1.2-beta", Version("1.2-beta").str());
29   EXPECT_EQ("1.2-beta", Version("1.2-beta0").str());
30 }
31 
TEST(Version,LessThan)32 TEST(Version, LessThan)
33 {
34   EXPECT_TRUE(Version("0") < Version("1"));
35   EXPECT_TRUE(Version("1.2") < Version("1.3"));
36   EXPECT_TRUE(Version("1.2.3") < Version("1.2.4"));
37   EXPECT_TRUE(Version("1.2.0.4") < Version("1.2.3"));
38   EXPECT_TRUE(Version("1.3-dev") < Version("1.3"));
39   EXPECT_TRUE(Version("1.3-dev") < Version("1.4"));
40   EXPECT_TRUE(Version("1.1-beta") < Version("1.1-beta1"));
41   EXPECT_TRUE(Version("1.1-beta1") < Version("1.1-beta2"));
42   EXPECT_TRUE(Version("1.1-beta2") < Version("1.1-rc1"));
43 
44   EXPECT_FALSE(Version("1") < Version("0"));
45   EXPECT_FALSE(Version("1.3") < Version("1.2"));
46   EXPECT_FALSE(Version("1.2.4") < Version("1.2.3"));
47   EXPECT_FALSE(Version("1.2.3") < Version("1.2.0.4"));
48   EXPECT_FALSE(Version("1.3") < Version("1.3-dev"));
49   EXPECT_FALSE(Version("1.4") < Version("1.3-dev"));
50   EXPECT_FALSE(Version("1.1-beta1") < Version("1.1-beta"));
51   EXPECT_FALSE(Version("1.1-beta2") < Version("1.1-beta1"));
52   EXPECT_FALSE(Version("1.1-rc1") < Version("1.1-beta2"));
53 }
54 
main(int argc,char ** argv)55 int main(int argc, char** argv)
56 {
57   ::testing::InitGoogleTest(&argc, argv);
58   return RUN_ALL_TESTS();
59 }
60