summaryrefslogtreecommitdiffstats
path: root/proxy/code/src/org/fedoraproject/candlepin/test/TestUtil.java
blob: a7b21c06264b1a63c60ffcc08191db77d435304d (plain)
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
109
110
111
112
/**
 * Copyright (c) 2009 Red Hat, Inc.
 *
 * This software is licensed to you under the GNU General Public License,
 * version 2 (GPLv2). There is NO WARRANTY for this software, express or
 * implied, including the implied warranties of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
 * along with this software; if not, see
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
 *
 * Red Hat trademarks are not licensed under GPLv2. No permission is
 * granted to use or replicate Red Hat trademarks that are incorporated
 * in this software or its documentation.
 */
package org.fedoraproject.candlepin.test;

import java.sql.Date;

import java.util.Calendar;
import java.util.Random;

import org.fedoraproject.candlepin.model.Consumer;
import org.fedoraproject.candlepin.model.ConsumerType;
import org.fedoraproject.candlepin.model.Entitlement;
import org.fedoraproject.candlepin.model.EntitlementPool;
import org.fedoraproject.candlepin.model.ObjectFactory;
import org.fedoraproject.candlepin.model.Owner;
import org.fedoraproject.candlepin.model.Product;
import org.fedoraproject.candlepin.model.User;

/**
 * TestUtil for creating various testing objects.
 * 
 * Objects backed by the database are not persisted, the caller is expected to persist
 * the entities returned and any dependent objects.
 */
public class TestUtil {
    
    private TestUtil() {
    }

    public static Owner createOwner() {
        Owner o = new Owner("Test Owner " + randomInt());
//        o.setUuid(lookedUp);
        ObjectFactory.get().store(o);
        return o;
    }

    public static Consumer createConsumer(ConsumerType type, Owner owner) {
        Consumer c = new Consumer("Test Consumer " + randomInt(), owner, type);
        ObjectFactory.get().store(c);
        return c;
    }

    /**
     * Create a consumer with a new owner
     * @return Consumer
     */
    public static Consumer createConsumer() {
        return createConsumer(createConsumerType(), createOwner());
    }
    
    public static ConsumerType createConsumerType() {
        return new ConsumerType("test-consumer-type-" + randomInt());
    }
    
    public static int randomInt() {
        return new Random().nextInt(10000);
    }

    public static Product createProduct() {
        int random =  randomInt();
        Product rhel = new Product("test-product-" + random, 
                "Test Product " + random);
        ObjectFactory.get().store(rhel);
        return rhel;
    }
    
    public static EntitlementPool createEntitlementPool() {
        EntitlementPool pool = new EntitlementPool(createOwner(), createProduct(), 
                new Long(1000),
                TestUtil.createDate(2009, 11, 30), TestUtil.createDate(2015, 11, 30));
        return pool;
    }
    
    public static Entitlement createEntitlement(EntitlementPool pool) {
        Entitlement e = new Entitlement(pool, pool.getOwner(), pool.getStartDate());
        return e;
    }
    
    public static User createUser(Owner owner) {
        User u = new User(owner, "testuser" + randomInt(), "sekret");
        return u;
    }
    
    public static Date createDate(int year, int month, int day) {
        Calendar cal = Calendar.getInstance();
            
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DATE, day);

        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);

        Date jsqlD = new Date(cal.getTime().getTime());
        return jsqlD;
    }

}