liuyn
2024-03-11 a87f1c3df03078814ee97ad0c8ac200a232419e9
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
public with sharing class SurveySitesUtil {
 
    
 
    public Boolean hasSites() {
        return Schema.getGlobalDescribe().keySet().contains('site');
    }
    
    public List<SurveySiteInfo> getSiteList() {
        
        List<SurveySiteInfo> ret = new List<SurveySiteInfo>();
        
        if (!hasSites()) {
            return ret;
        }
        
        List<Sobject> sitesResults = Database.query('Select Name, Subdomain, UrlPathPrefix from Site Where Status = \'Active\'');
                
        for (Sobject current : sitesResults) {
            ret.add(new SurveySiteInfo((String)current.get('Name'), (String)current.get('UrlPathPrefix'), (String)current.get('Subdomain')));
        }
        
        return ret;
        
    }
    
    public class SurveySiteInfo {
        public String name { get; set; }
        public String prefix { get; set; }
        public String subdomain {get; set; }
        
        public SurveySiteInfo(String name, String prefix, String subdomain) {
            this.name = name;
            this.prefix = prefix;
            this.subdomain = subdomain;
        }
    }
    
    static testmethod void testSurveySiteInfo() {
        SurveySitesUtil.SurveySiteInfo info = new SurveySitesUtil.SurveySiteInfo('one', 'two', 'three');
        System.assertEquals(info.name, 'one');
        System.assertEquals(info.prefix, 'two');
        System.assertEquals(info.subdomain, 'three');
    }
    
    static testmethod void testHasSites() {
        SurveySitesUtil util = new SurveySitesUtil();
        
        if (Schema.getGlobalDescribe().keySet().contains('site')) {
            System.assert(util.hasSites());
        } else {
            System.assert(!util.hasSites());
        }
    }
    
    static testmethod void testGetInfo() {
        SurveySitesUtil util = new SurveySitesUtil();
        System.assert(util.getSiteList() != null);
        if (util.hasSites()) {
            if (util.getSiteList().size() > 0) {
                SurveySitesUtil.SurveySiteInfo current = util.getSiteList()[0];
                System.assert(current != null);
            }
        }
    }
    
}