1 #include <glib.h>
2 #include <locale.h>
3 #include "lensfun.h"
4 
5 typedef struct {
6     lfDatabase* db;
7 } lfFixture;
8 
9 
db_setup(lfFixture * lfFix,gconstpointer data)10 void db_setup(lfFixture *lfFix, gconstpointer data)
11 {
12     lfFix->db = new lfDatabase ();
13     lfFix->db->LoadDirectory("data/db");
14 }
15 
16 
db_teardown(lfFixture * lfFix,gconstpointer data)17 void db_teardown(lfFixture *lfFix, gconstpointer data)
18 {
19     delete lfFix->db;
20 }
21 
22 
23 // test different lens search strings
test_DB_lens_search(lfFixture * lfFix,gconstpointer data)24 void test_DB_lens_search(lfFixture* lfFix, gconstpointer data)
25 {
26     const lfLens **lenses = NULL;
27 
28     lenses = lfFix->db->FindLenses (NULL, NULL, "pEntax 50-200 ED");
29     g_assert_nonnull(lenses);
30     g_assert_cmpstr(lenses[0]->Model, ==, "smc Pentax-DA 50-200mm f/4-5.6 DA ED");
31     lf_free (lenses);
32 
33     lenses = lfFix->db->FindLenses (NULL, NULL, "smc Pentax-DA 50-200mm f/4-5.6 DA ED");
34     g_assert_nonnull(lenses);
35     g_assert_cmpstr(lenses[0]->Model, ==, "smc Pentax-DA 50-200mm f/4-5.6 DA ED");
36     lf_free (lenses);
37 
38     lenses = lfFix->db->FindLenses (NULL, NULL, "PENTAX fa 28mm 2.8");
39     g_assert_nonnull(lenses);
40     g_assert_cmpstr(lenses[0]->Model, ==, "smc Pentax-FA 28mm f/2.8 AL");
41     lf_free (lenses);
42 
43     /*lenses = lfFix->db->FindLenses (NULL, NULL, "Fotasy M3517 35mm f/1.7");
44     g_assert_nonnull(lenses);
45     g_assert_cmpstr(lenses[0]->Model, ==, "Fotasy M3517 35mm f/1.7");
46     lf_free (lenses);
47 
48     lenses = lfFix->db->FindLenses (NULL, NULL, "Minolta MD 35mm 1/2.8");
49     g_assert_nonnull(lenses);
50     g_assert_cmpstr(lenses[0]->Model, ==, "Minolta MD 35mm 1/2.8");
51     lf_free (lenses);*/
52 }
53 
54 // test different camera search strings
test_DB_cam_search(lfFixture * lfFix,gconstpointer data)55 void test_DB_cam_search(lfFixture* lfFix, gconstpointer data)
56 {
57     const lfCamera **cameras = NULL;
58 
59     cameras = lfFix->db->FindCamerasExt("pentax", "K100D");
60     g_assert_nonnull(cameras);
61     g_assert_cmpstr(cameras[0]->Model, ==, "Pentax K100D");
62     lf_free (cameras);
63 
64     cameras = lfFix->db->FindCamerasExt(NULL, "K 100 D");
65     g_assert_nonnull(cameras);
66     g_assert_cmpstr(cameras[0]->Model, ==, "Pentax K100D");
67     lf_free (cameras);
68 
69     cameras = lfFix->db->FindCamerasExt(NULL, "PentAX K100 D");
70     g_assert_nonnull(cameras);
71     g_assert_cmpstr(cameras[0]->Model, ==, "Pentax K100D");
72     lf_free (cameras);
73 
74 }
75 
main(int argc,char ** argv)76 int main (int argc, char **argv)
77 {
78 
79     setlocale (LC_ALL, "");
80 
81     g_test_init(&argc, &argv, NULL);
82 
83     g_test_add("/database/lens search", lfFixture, NULL, db_setup, test_DB_lens_search, db_teardown);
84     g_test_add("/database/camera search", lfFixture, NULL, db_setup, test_DB_cam_search, db_teardown);
85 
86     return g_test_run();
87 }
88