File: basic_listener_tests.adb

package info (click to toggle)
ahven 2.4%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 884 kB
  • ctags: 188
  • sloc: ada: 4,012; makefile: 287; xml: 108; sh: 57; python: 26; perl: 7
file content (108 lines) | stat: -rw-r--r-- 3,983 bytes parent folder | download | duplicates (2)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
--
-- Copyright (c) 2008 Tero Koskinen <tero.koskinen@iki.fi>
--
-- Permission to use, copy, modify, and distribute this software for any
-- purpose with or without fee is hereby granted, provided that the above
-- copyright notice and this permission notice appear in all copies.
--
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
--

with Ahven;
with Ahven.Listeners.Basic;
with Ahven.Results;
with Ahven.AStrings;
with Ahven.Long_AStrings;

use Ahven;
use Ahven.Results;

package body Basic_Listener_Tests is

   procedure Assert_Equal_Nat is new Ahven.Assert_Equal
     (Data_Type => Natural, Image => Natural'Image);

   procedure Initialize (T : in out Test) is
   begin
      Set_Name (T, "Ahven.Listeners.Basic");
      Framework.Add_Test_Routine
        (T, Test_Single_Pass'Access, "Test Single Pass");
      Framework.Add_Test_Routine
        (T, Test_Error_Inside_Suite'Access, "Test Error Inside Suite");
   end Initialize;

   procedure Test_Single_Pass is
      use Ahven.Listeners;
      use Ahven.AStrings;

      Listener : Basic.Basic_Listener;
   begin
      Listeners.Basic.Start_Test
        (Listener, (Phase     => TEST_BEGIN,
                    Test_Name => To_Bounded_String ("testname"),
                    Test_Kind => ROUTINE));
      Listeners.Basic.Add_Pass
        (Listener,
          (Phase        => TEST_RUN,
           Test_Name    => To_Bounded_String ("testname"),
           Test_Kind    => ROUTINE,
           Routine_Name => To_Bounded_String ("routine"),
           Message      => To_Bounded_String ("message"),
           Long_Message => Long_AStrings.To_Bounded_String ("long_message")));
      Listeners.Basic.End_Test
        (Listener, (Phase          => TEST_END,
                    Test_Name      => To_Bounded_String ("testname"),
                    Test_Kind      => ROUTINE));

      Assert_Equal_Nat (Test_Count (Listener.Main_Result), 1, "Test Count");
   end Test_Single_Pass;

   procedure Test_Error_Inside_Suite is
      use Ahven.Listeners;
      use Ahven.AStrings;

      Listener : Basic.Basic_Listener;
   begin
      Listeners.Basic.Start_Test
        (Listener, (Phase     => TEST_BEGIN,
                    Test_Name => To_Bounded_String ("suite"),
                    Test_Kind => CONTAINER));

      Listeners.Basic.Start_Test
        (Listener, (Phase     => TEST_BEGIN,
                    Test_Name => To_Bounded_String ("testname"),
                    Test_Kind => ROUTINE));

      Listeners.Basic.Add_Error
        (Listener,
          (Phase     => TEST_RUN,
           Test_Name => To_Bounded_String ("testname"),
           Test_Kind => ROUTINE,
           Routine_Name => To_Bounded_String ("routine"),
           Message      => To_Bounded_String ("message"),
           Long_Message => Long_AStrings.To_Bounded_String ("long_message")));
      Listeners.Basic.End_Test
        (Listener, (Phase     => TEST_END,
                    Test_Name => To_Bounded_String ("testname"),
                    Test_Kind => ROUTINE));

      Listeners.Basic.End_Test
        (Listener, (Phase     => TEST_END,
                    Test_Name => To_Bounded_String ("suite"),
                    Test_Kind => CONTAINER));

      Assert_Equal_Nat (Test_Count (Listener.Main_Result), 1, "Test Count");

      Assert_Equal_Nat (Direct_Test_Count (Listener.Main_Result), 0,
                        "Direct Test Count");

      Assert_Equal_Nat (Error_Count (Listener.Main_Result), 1, "Error Count");
   end Test_Error_Inside_Suite;

end Basic_Listener_Tests;