org.apache.openmeetings.db.dto.user.TestOAuthUser.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.openmeetings.db.dto.user.TestOAuthUser.java

Source

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * 'License') +  you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.openmeetings.db.dto.user;

import static org.apache.openmeetings.db.dto.user.OAuthUser.PARAM_EMAIL;
import static org.apache.openmeetings.db.dto.user.OAuthUser.PARAM_FNAME;
import static org.apache.openmeetings.db.dto.user.OAuthUser.PARAM_LNAME;
import static org.apache.openmeetings.db.dto.user.OAuthUser.PARAM_LOGIN;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;

import java.util.HashMap;
import java.util.Map;

import org.apache.openmeetings.db.entity.server.OAuthServer;
import org.apache.wicket.util.string.Strings;
import org.junit.Test;

public class TestOAuthUser {
    @Test
    public void firstLevel() {
        OAuthServer server = new OAuthServer().addMapping(PARAM_LOGIN, "id").addMapping(PARAM_EMAIL, "email")
                .addMapping(PARAM_FNAME, "given_name").addMapping(PARAM_LNAME, "family_name");
        OAuthUser user = new OAuthUser(
                "{'id': '11klahjsfwehf5', 'email': 'alsfkvslvmclqwkdsm@gmail.com', 'verified_email': true, 'name': 'John Doe', 'given_name': 'John', 'family_name': 'Doe', 'link': 'https://plus.google.com/+JohnDoe', 'picture': 'https://lh3.googleusercontent.com/somehash/photo.jpg', 'gender': 'male', 'locale': 'en'}",
                server);
        assertEquals("Login should be correct", "11klahjsfwehf5", user.getLogin());
        assertEquals("Email should be correct", "alsfkvslvmclqwkdsm@gmail.com", user.getEmail());
        assertEquals("Firstname should be correct", "John", user.getUserData().get(PARAM_FNAME));
        assertEquals("Lastname should be correct", "Doe", user.getUserData().get(PARAM_LNAME));
    }

    @Test
    public void secondLevel() {
        OAuthServer server = new OAuthServer().addMapping(PARAM_LOGIN, "uid").addMapping(PARAM_EMAIL, "email")
                .addMapping(PARAM_FNAME, "first_name").addMapping(PARAM_LNAME, "last_name");
        OAuthUser user = new OAuthUser("{'response':[{'uid':4uidhere4,'first_name':'John','last_name':'Doe'}]}",
                server);
        assertEquals("Login should be correct", "4uidhere4", user.getLogin());
        assertTrue("Email should be empty", Strings.isEmpty(user.getEmail()));
        assertEquals("Firstname should be correct", "John", user.getUserData().get(PARAM_FNAME));
        assertEquals("Lastname should be correct", "Doe", user.getUserData().get(PARAM_LNAME));

        server.setIconUrl("https://goo.gl/images/q23g7Y");
        user = new OAuthUser("{'response':[{'uid':4uidhere4,'first_name':'John','last_name':'Doe'}]}", server);
        assertEquals("Email should be constructed", "4uidhere4@goo.gl", user.getEmail());
    }

    @Test
    public void secondLevel1() {
        OAuthServer server = new OAuthServer().addMapping(PARAM_LOGIN, "username").addMapping(PARAM_EMAIL, "email")
                .addMapping(PARAM_FNAME, "fname").addMapping(PARAM_LNAME, "lname");
        OAuthUser user = new OAuthUser(
                "{\"hasError\": false, \"result\": {\"username\": \"test\", \"email\": \"aaa@test.com\", \"fname\": \"first\", \"lname\":\"last\"}}",
                server);
        assertEquals("Login should be correct", "test", user.getLogin());
        assertEquals("Email should be correct", "aaa@test.com", user.getEmail());
        assertEquals("Firstname should be correct", "first", user.getUserData().get(PARAM_FNAME));
        assertEquals("Lastname should be correct", "last", user.getUserData().get(PARAM_LNAME));
    }

    @Test
    public void map() {
        Map<String, String> umap = new HashMap<>();
        umap.put("login", "abc");
        umap.put("email", "abc@local");
        OAuthUser user = new OAuthUser(umap);
        assertEquals("Login should be correct", "abc", user.getLogin());
        assertEquals("Email should be correct", "abc@local", user.getEmail());
        assertNull("First should be empty", user.getUserData().get(PARAM_FNAME));
        assertNull("Lastname should be empty", user.getUserData().get(PARAM_LNAME));
    }
}