EMMA Coverage Report (generated Fri Jul 28 01:51:09 CEST 2006)
[all classes][org.jtiger.assertion]

COVERAGE SUMMARY FOR SOURCE FILE [EqualsMethodContractTesterFactory.java]

nameclass, %method, %block, %line, %
EqualsMethodContractTesterFactory.java100% (3/3)100% (12/12)98%  (258/263)96%  (45/47)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class EqualsMethodContractTesterFactory100% (1/1)100% (2/2)100% (14/14)100% (5/5)
EqualsMethodContractTesterFactory (): void 100% (1/1)100% (3/3)100% (2/2)
newEqualsMethodContractTester (ObjectFactory): EqualsMethodContractTester 100% (1/1)100% (11/11)100% (3/3)
     
class EqualsMethodContractTesterFactory$EqualsMethodContractTesterImpl100% (1/1)100% (9/9)98%  (238/243)95%  (38/40)
EqualsMethodContractTesterFactory$EqualsMethodContractTesterImpl (ObjectFacto... 100% (1/1)100% (6/6)100% (3/3)
fillsContract (): boolean 100% (1/1)100% (25/25)100% (1/1)
isConsistentAcrossInvocations (): boolean 100% (1/1)88%  (30/34)83%  (10/12)
isReflexive (): boolean 100% (1/1)100% (20/20)100% (3/3)
isSymmetric (): boolean 100% (1/1)100% (36/36)100% (5/5)
isTransitive (): boolean 100% (1/1)100% (52/52)100% (7/7)
isUnequalToArbitraryType (): boolean 100% (1/1)96%  (25/26)99%  (3/3)
isUnequalToNull (): boolean 100% (1/1)100% (24/24)100% (3/3)
isUnequalToUnequalInstance (): boolean 100% (1/1)100% (20/20)100% (3/3)
     
class EqualsMethodContractTesterFactory$EqualsMethodContractTesterImpl$1ArbitraryType100% (1/1)100% (1/1)100% (6/6)100% (2/2)
EqualsMethodContractTesterFactory$EqualsMethodContractTesterImpl$1ArbitraryTy... 100% (1/1)100% (6/6)100% (2/2)

1/*
2 * JTiger Unit Testing Framework for J2SE 1.5
3 * Copyright (C) 2005 Tony Morris
4 *
5 * This software is licenced under the
6 * Common Public Licence version 1.0
7 * http://www.opensource.org/licenses/cpl1.0.php
8 *
9 * You received a copy of this licence with this software.
10 */
11package org.jtiger.assertion;
12 
13final class EqualsMethodContractTesterFactory
14{
15    private EqualsMethodContractTesterFactory()
16    {
17 
18    }
19 
20    static EqualsMethodContractTester newEqualsMethodContractTester(final ObjectFactory<?> factory) throws NullPointerException
21    {
22        if(factory == null)
23        {
24            throw new NullPointerException();
25        }
26 
27        return new EqualsMethodContractTesterImpl(factory);
28    }
29 
30    private static final class EqualsMethodContractTesterImpl implements EqualsMethodContractTester
31    {
32        private final ObjectFactory<?> factory;
33 
34        EqualsMethodContractTesterImpl(final ObjectFactory<?> factory)
35        {
36            this.factory = factory;
37        }
38 
39        public boolean isUnequalToNull()
40        {
41            final Object x = factory.newInstanceX();
42            final Object y = factory.newInstanceY();
43 
44            return x != null && !x.equals(null) && y != null && !y.equals(null);
45        }
46 
47        public boolean isConsistentAcrossInvocations()
48        {
49            for (int i = 0; i < 20; ++i)
50            {
51                if(!isUnequalToNull())
52                {
53                    return false;
54                }
55 
56                if(!isReflexive())
57                {
58                    return false;
59                }
60 
61                if(!isSymmetric())
62                {
63                    return false;
64                }
65 
66                if(!isTransitive())
67                {
68                    return false;
69                }
70 
71                if(!isUnequalToUnequalInstance())
72                {
73                    return false;
74                }
75            }
76 
77            return true;
78        }
79 
80        public boolean isReflexive()
81        {
82            final Object x = factory.newInstanceX();
83            final Object y = factory.newInstanceY();
84 
85            return x.equals(x) && y.equals(y);
86        }
87 
88        public boolean isSymmetric()
89        {
90            final Object x1 = factory.newInstanceX();
91            final Object x2 = factory.newInstanceX();
92            final Object y1 = factory.newInstanceY();
93            final Object y2 = factory.newInstanceY();
94 
95            return x1.equals(x2) && x2.equals(x1) && y1.equals(y2) && y2.equals(y1);
96        }
97 
98        public boolean isTransitive()
99        {
100            final Object x1 = factory.newInstanceX();
101            final Object x2 = factory.newInstanceX();
102            final Object x3 = factory.newInstanceX();
103            final Object y1 = factory.newInstanceY();
104            final Object y2 = factory.newInstanceY();
105            final Object y3 = factory.newInstanceY();
106 
107            return x1.equals(x2) && x2.equals(x3) && x1.equals(x3) &&
108                   y1.equals(y2) && y2.equals(y3) && y1.equals(y3);
109        }
110 
111        public boolean isUnequalToUnequalInstance()
112        {
113            final Object x = factory.newInstanceX();
114            final Object y = factory.newInstanceY();
115 
116            return !x.equals(y) && !y.equals(x);
117        }
118 
119        public boolean isUnequalToArbitraryType()
120        {
121            final Object x = factory.newInstanceX();
122            final Object y = factory.newInstanceY();
123 
124            final class ArbitraryType
125            {
126                private ArbitraryType()
127                {
128 
129                }
130            }
131 
132            return !x.equals(new ArbitraryType()) && !y.equals(new ArbitraryType());
133        }
134 
135        public boolean fillsContract()
136        {
137            return (isUnequalToNull()
138                    && isConsistentAcrossInvocations()
139                    && isReflexive()
140                    && isSymmetric()
141                    && isTransitive()
142                    && isUnequalToArbitraryType()
143                    && isUnequalToUnequalInstance());
144        }
145    }
146}

[all classes][org.jtiger.assertion]
EMMA 2.0.5312 (C) Vladimir Roubtsov