Test Setup Failed
Push — master ( d0d5b6...c7ee15 )
by Misagh
23:53
created

checkInitialAttributes

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 6
1
package org.apereo.cas;
2
3
import com.fasterxml.jackson.databind.ObjectMapper;
4
import org.apache.commons.io.FileUtils;
5
import org.apereo.cas.authentication.principal.DefaultPrincipalAttributesRepository;
6
import org.apereo.cas.authentication.principal.Principal;
7
import org.apereo.cas.authentication.principal.PrincipalAttributesRepository;
8
import org.apereo.cas.authentication.principal.PrincipalFactory;
9
import org.apereo.cas.config.CasAuthenticationEventExecutionPlanTestConfiguration;
10
import org.apereo.cas.config.CasCoreAuthenticationPrincipalConfiguration;
11
import org.apereo.cas.config.CasCoreAuthenticationServiceSelectionStrategyConfiguration;
12
import org.apereo.cas.config.CasCoreConfiguration;
13
import org.apereo.cas.config.CasCoreHttpConfiguration;
14
import org.apereo.cas.config.CasCoreServicesConfiguration;
15
import org.apereo.cas.config.CasCoreTicketCatalogConfiguration;
16
import org.apereo.cas.config.CasCoreTicketIdGeneratorsConfiguration;
17
import org.apereo.cas.config.CasCoreTicketsConfiguration;
18
import org.apereo.cas.config.CasCoreUtilConfiguration;
19
import org.apereo.cas.config.CasCoreWebConfiguration;
20
import org.apereo.cas.config.CasDefaultServiceTicketIdGeneratorsConfiguration;
21
import org.apereo.cas.config.CasPersonDirectoryTestConfiguration;
22
import org.apereo.cas.config.CasRegisteredServicesTestConfiguration;
23
import org.apereo.cas.config.support.CasWebApplicationServiceFactoryConfiguration;
24
import org.apereo.cas.logout.config.CasCoreLogoutConfiguration;
25
import org.junit.Test;
26
import org.junit.runner.RunWith;
27
import org.springframework.beans.factory.annotation.Autowired;
28
import org.springframework.beans.factory.annotation.Qualifier;
29
import org.springframework.boot.test.context.SpringBootTest;
30
import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration;
31
import org.springframework.test.context.junit4.SpringRunner;
32
33
import java.io.File;
34
import java.io.IOException;
35
import java.util.Collections;
36
37
import static org.junit.Assert.*;
38
39
/**
40
 * Handles tests for {@link DefaultPrincipalAttributesRepository}.
41
 *
42
 * @author Misagh Moayyed
43
 * @since 4.1
44
 */
45
@RunWith(SpringRunner.class)
46
@SpringBootTest(classes = {
47
        RefreshAutoConfiguration.class,
48
        CasCoreConfiguration.class,
49
        CasCoreTicketsConfiguration.class,
50
        CasCoreLogoutConfiguration.class,
51
        CasCoreServicesConfiguration.class,
52
        CasCoreTicketIdGeneratorsConfiguration.class,
53
        CasCoreTicketCatalogConfiguration.class,
54
        CasCoreAuthenticationServiceSelectionStrategyConfiguration.class,
55
        CasCoreHttpConfiguration.class,
56
        CasCoreWebConfiguration.class,
57
        CasPersonDirectoryTestConfiguration.class,
58
        CasCoreUtilConfiguration.class,
59
        CasRegisteredServicesTestConfiguration.class,
60
        CasWebApplicationServiceFactoryConfiguration.class,
61
        CasAuthenticationEventExecutionPlanTestConfiguration.class,
62
        CasDefaultServiceTicketIdGeneratorsConfiguration.class,
63
        CasCoreAuthenticationPrincipalConfiguration.class
64
})
65
public class DefaultPrincipalAttributesRepositoryTests {
66
67
    private static final File JSON_FILE = new File(FileUtils.getTempDirectoryPath(), "defaultPrincipalAttributesRepository.json");
68
    private static final ObjectMapper MAPPER = new ObjectMapper();
69
70
    @Autowired
71
    @Qualifier("principalFactory")
72
    private PrincipalFactory principalFactory;
73
74
    @Test
75
    public void checkDefaultAttributes() {
76
        final PrincipalAttributesRepository rep = new DefaultPrincipalAttributesRepository();
77
        assertEquals(rep.getAttributes(this.principalFactory.createPrincipal("uid")).size(), 3);
78
    }
79
80
    @Test
81
    public void checkInitialAttributes() {
82
        final Principal p = this.principalFactory.createPrincipal("uid", Collections.singletonMap("mail", "[email protected]"));
83
        final PrincipalAttributesRepository rep = new DefaultPrincipalAttributesRepository();
84
        assertEquals(rep.getAttributes(p).size(), 1);
85
        assertTrue(rep.getAttributes(p).containsKey("mail"));
86
    }
87
88
    @Test
89
    public void verifySerializeADefaultPrincipalAttributesRepositoryToJson() throws IOException {
90
        final PrincipalAttributesRepository repositoryWritten = new DefaultPrincipalAttributesRepository();
91
        MAPPER.writeValue(JSON_FILE, repositoryWritten);
92
        final PrincipalAttributesRepository repositoryRead = MAPPER.readValue(JSON_FILE, DefaultPrincipalAttributesRepository.class);
93
        assertEquals(repositoryWritten, repositoryRead);
94
    }
95
}
96