File: calendarTest.cpp

package info (click to toggle)
eris 1.3.13-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 2,916 kB
  • ctags: 1,679
  • sloc: cpp: 12,043; sh: 9,050; perl: 287; makefile: 197; ansic: 165
file content (79 lines) | stat: -rw-r--r-- 2,070 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "calendarTest.h"
#include "signalHelpers.h"

#include "testUtils.h"
#include "signalHelpers.h"
#include "setupHelpers.h"
#include "viewTest.h"
#include "controller.h"

#include <Eris/Account.h>
#include <Eris/Avatar.h>
#include <Eris/Calendar.h>

#include <sigc++/object_slot.h>
#include <sigc++/object.h>

#include <Atlas/Objects/Operation.h>
#include <Atlas/Objects/Anonymous.h>
#include <Atlas/Objects/Entity.h>

using namespace Atlas::Objects::Operation;
using Atlas::Objects::Entity::Anonymous;
using Atlas::Objects::Root;

void testSimpleCalendar(Controller& ctl)
{
    AutoConnection con = stdConnect();
    AutoAccount acc = stdLogin("account_B", "sweede", con.get());
    
    ctl.setEntityVisibleToAvatar("_hut_01", "acc_b_character");
    
    AutoAvatar av = AvatarGetter(acc.get()).take("acc_b_character");
    Eris::View* v = av->getView();
    {
        WaitForAppearance wf(v, "_hut_01");
        wf.run();
    }
    
    std::auto_ptr<Eris::Calendar> cal(new Eris::Calendar(av.get()));
    
    // inject a dummy op to establish world time
    Eris::TestInjector i(con.get());
    
    Set st;
    Anonymous arg;
    arg->setId("_hut_01");
    arg->setAttr("woo", 99);
    st->setArgs1(arg);
    st->setTo("acc_b_character");
    st->setFrom("_hut_01");
    
    Sight sight;
    sight->setArgs1(st);
    sight->setTo("acc_b_character");
    sight->setSeconds(2000000);
    
    i.inject(sight);
    
    Eris::DateTime dt = cal->now();
    assert(dt.valid());
    assert(dt.year() == 0);
    assert(dt.month() == 2);        // 2 * 42 = 84
    assert(dt.dayOfMonth() == 5);   // 84 + 5 = 89
    assert(dt.hours() == 4);          // 89 * 14 = 1246, + 4 = 1250
    assert(dt.minutes() == 0);
    assert(dt.seconds() == 0);
    
    sight->setSeconds(67881726);
    i.inject(sight);
    
    dt = cal->now();
    assert(dt.valid());
    assert(dt.year() == 6);
    assert(dt.month() == 6);      
    assert(dt.dayOfMonth() == 6);
    assert(dt.hours() == 6);
    assert(dt.minutes() == 6);
   // assert(dt.seconds() == 6); // precision problems
}