/*
* Copyright 1998-2012 Linux.org.ru
* Licensed 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 ru.org.linux.user;
import org.junit.Assert;
import org.junit.Test;
import ru.org.linux.auth.AccessViolationException;
import ru.org.linux.test.Users;
import java.sql.ResultSet;
/**
* Unit Tests для User
*/
public class UserTest {
/**
* проверка администратора
* @throws Exception хм
*/
@Test
public void maxcomTest() throws Exception {
ResultSet resultSet = Users.getMaxcom();
User user = new User(resultSet);
Assert.assertEquals(resultSet.getInt("id"), user.getId());
Assert.assertEquals(resultSet.getString("nick"), user.getNick());
Assert.assertEquals("tango", resultSet.getString("style"));
Assert.assertTrue(user.matchPassword("passwd"));
try {
user.checkAnonymous();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkBlocked();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkCommit();
} catch (AccessViolationException e) {
Assert.fail();
}
Assert.assertFalse(user.isBlocked());
try {
user.checkDelete();
} catch (AccessViolationException e) {
Assert.fail();
}
Assert.assertTrue(user.isModerator());
Assert.assertTrue(user.isAdministrator());
Assert.assertFalse(user.canCorrect());
Assert.assertFalse(user.isAnonymous());
Assert.assertEquals(resultSet.getInt("score"), user.getScore());
Assert.assertEquals("<span class=\"stars\">★★★★★</span>", user.getStatus());
Assert.assertFalse(user.isBlockable());
Assert.assertTrue(user.isActivated());
Assert.assertFalse(user.isAnonymousScore());
Assert.assertEquals(resultSet.getBoolean("corrector"), user.isCorrector());
Assert.assertEquals(resultSet.getString("email"), user.getEmail());
Assert.assertTrue(user.hasGravatar());
Assert.assertEquals(resultSet.getString("name"), user.getName());
}
/**
* проверка анонимуса
* @throws Exception ?
*/
@Test
public void anonymousTest() throws Exception {
ResultSet resultSet = Users.getAnonymous();
User user = new User(resultSet);
Assert.assertEquals(resultSet.getInt("id"), user.getId());
Assert.assertEquals(resultSet.getString("nick"), user.getNick());
Assert.assertEquals("tango", resultSet.getString("style"));
Assert.assertFalse(user.matchPassword("passwd"));
try {
user.checkAnonymous();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Anonymous user",e.getMessage());
}
try {
user.checkBlocked();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkCommit();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Commit access denied for anonymous user", e.getMessage());
}
Assert.assertFalse(user.isBlocked());
try {
user.checkDelete();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Delete access denied for anonymous user", e.getMessage());
}
Assert.assertFalse(user.isModerator());
Assert.assertFalse(user.isAdministrator());
Assert.assertFalse(user.canCorrect());
Assert.assertTrue(user.isAnonymous());
Assert.assertEquals(0, user.getScore());
Assert.assertEquals("анонимный", user.getStatus());
Assert.assertFalse(user.isBlockable());
Assert.assertTrue(user.isActivated());
Assert.assertTrue(user.isAnonymousScore());
Assert.assertEquals(resultSet.getBoolean("corrector"), user.isCorrector());
Assert.assertEquals(resultSet.getString("email"), user.getEmail());
Assert.assertFalse(user.hasGravatar());
Assert.assertEquals(resultSet.getString("name"), user.getName());
}
/**
* проверка модератора
* @throws Exception хм
*/
@Test
public void svuTest() throws Exception {
ResultSet resultSet = Users.getModerator();
User user = new User(resultSet);
Assert.assertEquals(resultSet.getInt("id"), user.getId());
Assert.assertEquals(resultSet.getString("nick"), user.getNick());
Assert.assertEquals("tango", resultSet.getString("style"));
Assert.assertTrue(user.matchPassword("passwd"));
try {
user.checkAnonymous();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkBlocked();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkCommit();
} catch (AccessViolationException e) {
Assert.fail();
}
Assert.assertFalse(user.isBlocked());
try {
user.checkDelete();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Delete access denied for user "+
resultSet.getString("nick") + " (" +
resultSet.getInt("id") + ") ", e.getMessage());
}
Assert.assertTrue(user.isModerator());
Assert.assertFalse(user.isAdministrator());
Assert.assertFalse(user.canCorrect());
Assert.assertFalse(user.isAnonymous());
Assert.assertEquals(resultSet.getInt("score"), user.getScore());
Assert.assertEquals("<span class=\"stars\">★★★★★</span>", user.getStatus());
Assert.assertFalse(user.isBlockable());
Assert.assertTrue(user.isActivated());
Assert.assertFalse(user.isAnonymousScore());
Assert.assertEquals(resultSet.getBoolean("corrector"), user.isCorrector());
Assert.assertEquals(resultSet.getString("email"), user.getEmail());
Assert.assertFalse(user.hasGravatar());
Assert.assertEquals(resultSet.getString("name"), user.getName());
}
/**
* проверка для пользователя с 5-ю звездами
* @throws Exception хм
*/
@Test
public void user5starTest() throws Exception {
ResultSet resultSet = Users.getUser5star();
User user = new User(resultSet);
Assert.assertEquals(resultSet.getInt("id"), user.getId());
Assert.assertEquals(resultSet.getString("nick"), user.getNick());
Assert.assertEquals("tango", resultSet.getString("style"));
Assert.assertTrue(user.matchPassword("passwd"));
try {
user.checkAnonymous();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkBlocked();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkCommit();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Commit access denied for user "+
resultSet.getString("nick") + " (" +
resultSet.getInt("id") + ") ", e.getMessage());
}
Assert.assertFalse(user.isBlocked());
try {
user.checkDelete();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Delete access denied for user "+
resultSet.getString("nick") + " (" +
resultSet.getInt("id") + ") ", e.getMessage());
}
Assert.assertFalse(user.isModerator());
Assert.assertFalse(user.isAdministrator());
Assert.assertFalse(user.canCorrect());
Assert.assertFalse(user.isAnonymous());
Assert.assertEquals(resultSet.getInt("score"), user.getScore());
Assert.assertEquals("<span class=\"stars\">★★★★★</span>", user.getStatus());
Assert.assertTrue(user.isBlockable());
Assert.assertTrue(user.isActivated());
Assert.assertFalse(user.isAnonymousScore());
Assert.assertEquals(resultSet.getBoolean("corrector"), user.isCorrector());
Assert.assertEquals(resultSet.getString("email"), user.getEmail());
Assert.assertFalse(user.hasGravatar());
Assert.assertEquals(resultSet.getString("name"), user.getName());
}
/**
* проверка для пользователя с 1-ой звездами
* @throws Exception хм
*/
@Test
public void user1starTest() throws Exception {
ResultSet resultSet = Users.getUser1star();
User user = new User(resultSet);
Assert.assertEquals(resultSet.getInt("id"), user.getId());
Assert.assertEquals(resultSet.getString("nick"), user.getNick());
Assert.assertEquals("tango", resultSet.getString("style"));
Assert.assertTrue(user.matchPassword("passwd"));
try {
user.checkAnonymous();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkBlocked();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkCommit();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Commit access denied for user "+
resultSet.getString("nick") + " (" +
resultSet.getInt("id") + ") ", e.getMessage());
}
Assert.assertFalse(user.isBlocked());
try {
user.checkDelete();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Delete access denied for user "+
resultSet.getString("nick") + " (" +
resultSet.getInt("id") + ") ", e.getMessage());
}
Assert.assertFalse(user.isModerator());
Assert.assertFalse(user.isAdministrator());
Assert.assertFalse(user.canCorrect());
Assert.assertFalse(user.isAnonymous());
Assert.assertEquals(resultSet.getInt("score"), user.getScore());
Assert.assertEquals("<span class=\"stars\">★</span>", user.getStatus());
Assert.assertTrue(user.isBlockable());
Assert.assertTrue(user.isActivated());
Assert.assertFalse(user.isAnonymousScore());
Assert.assertEquals(resultSet.getBoolean("corrector"), user.isCorrector());
Assert.assertEquals(resultSet.getString("email"), user.getEmail());
Assert.assertFalse(user.hasGravatar());
Assert.assertEquals(resultSet.getString("name"), user.getName());
}
/**
* проверка для пользователя с < 50 score
* @throws Exception хм
*/
@Test
public void user45scoreTest() throws Exception {
ResultSet resultSet = Users.getUser45Score();
User user = new User(resultSet);
Assert.assertEquals(resultSet.getInt("id"), user.getId());
Assert.assertEquals(resultSet.getString("nick"), user.getNick());
Assert.assertEquals("tango", resultSet.getString("style"));
Assert.assertTrue(user.matchPassword("passwd"));
try {
user.checkAnonymous();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkBlocked();
} catch (AccessViolationException e) {
Assert.fail();
}
try {
user.checkCommit();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Commit access denied for user "+
resultSet.getString("nick") + " (" +
resultSet.getInt("id") + ") ", e.getMessage());
}
Assert.assertFalse(user.isBlocked());
try {
user.checkDelete();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Delete access denied for user "+
resultSet.getString("nick") + " (" +
resultSet.getInt("id") + ") ", e.getMessage());
}
Assert.assertFalse(user.isModerator());
Assert.assertFalse(user.isAdministrator());
Assert.assertFalse(user.canCorrect());
Assert.assertFalse(user.isAnonymous());
Assert.assertEquals(resultSet.getInt("score"), user.getScore());
Assert.assertEquals("анонимный", user.getStatus());
Assert.assertTrue(user.isBlockable());
Assert.assertTrue(user.isActivated());
Assert.assertTrue(user.isAnonymousScore());
Assert.assertEquals(resultSet.getBoolean("corrector"), user.isCorrector());
Assert.assertEquals(resultSet.getString("email"), user.getEmail());
Assert.assertFalse(user.hasGravatar());
Assert.assertEquals(resultSet.getString("name"), user.getName());
}
/**
* проверка для заблокированного пользователя с < 50 score
* @throws Exception хм
*/
@Test
public void userBlockedTest() throws Exception {
ResultSet resultSet = Users.getUser45ScoreBlocked();
User user = new User(resultSet);
Assert.assertEquals(resultSet.getInt("id"), user.getId());
Assert.assertEquals(resultSet.getString("nick"), user.getNick());
Assert.assertEquals("tango", resultSet.getString("style"));
Assert.assertTrue(user.matchPassword("passwd"));
try {
user.checkAnonymous();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Anonymous user", e.getMessage());
}
try {
user.checkBlocked();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Пользователь заблокирован", e.getMessage());
}
try {
user.checkCommit();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Commit access denied for anonymous user", e.getMessage());
}
Assert.assertTrue(user.isBlocked());
try {
user.checkDelete();
Assert.fail();
} catch (AccessViolationException e) {
Assert.assertEquals("Delete access denied for anonymous user", e.getMessage());
}
Assert.assertFalse(user.isModerator());
Assert.assertFalse(user.isAdministrator());
Assert.assertFalse(user.canCorrect());
Assert.assertFalse(user.isAnonymous()); // TODO для заблокированного ананомного пользователя False :-\
Assert.assertEquals(resultSet.getInt("score"), user.getScore());
Assert.assertEquals("анонимный", user.getStatus());
Assert.assertTrue(user.isBlockable());
Assert.assertTrue(user.isActivated());
Assert.assertTrue(user.isAnonymousScore());
Assert.assertEquals(resultSet.getBoolean("corrector"), user.isCorrector());
Assert.assertEquals(resultSet.getString("email"), user.getEmail());
Assert.assertFalse(user.hasGravatar());
Assert.assertEquals(resultSet.getString("name"), user.getName());
}
/**
* проверка активации
* @throws Exception хм
*/
@Test
public void hizelTest() throws Exception {
ResultSet resultSet = Users.getHizel();
User user = new User(resultSet);
Assert.assertEquals("0428dfed932b07ea582efd94038b1076", user.getActivationCode("secret"));
}
}