/*
* Copyright 2013, 2014, 2015 EnergyOS.org
*
* 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 org.energyos.espi.common.domain;
import static org.energyos.espi.common.support.TestUtils.assertAnnotationPresent;
import static org.energyos.espi.common.support.TestUtils.assertColumnAnnotation;
import static org.energyos.espi.common.test.EspiFactory.newAuthorization;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.core.IsNot.not;
import static org.junit.Assert.assertTrue;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.junit.Test;
public class AuthorizationTests {
@Test
public void isValid() throws Exception {
Validator validator = Validation.buildDefaultValidatorFactory()
.getValidator();
Authorization authorization = newAuthorization();
Set<ConstraintViolation<Authorization>> violations = validator
.validate(authorization);
assertThat(violations, is(empty()));
}
@Test
public void isInvalid() throws Exception {
Validator validator = Validation.buildDefaultValidatorFactory()
.getValidator();
Authorization authorization = new Authorization();
Set<ConstraintViolation<Authorization>> violations = validator
.validate(authorization);
assertThat(violations, is(not(empty())));
}
@Test
public void extendsIdentifiableObject() {
assertTrue(Authorization.class.getSuperclass() == IdentifiedObject.class);
}
@Test
public void persistence() {
assertAnnotationPresent(Authorization.class, Entity.class);
assertAnnotationPresent(Authorization.class, Table.class);
}
@Test
public void accessToken() {
assertColumnAnnotation(Authorization.class, "accessToken",
"access_token");
}
@Test
public void authorizationServer() {
assertColumnAnnotation(Authorization.class, "authorizationURI",
"authorization_uri");
}
@Test
public void thirdParty() {
assertColumnAnnotation(Authorization.class, "thirdParty", "third_party");
}
@Test
public void retailCustomer() {
assertAnnotationPresent(Authorization.class, "retailCustomer",
ManyToOne.class);
assertAnnotationPresent(Authorization.class, "retailCustomer",
JoinColumn.class);
}
@Test
public void state() {
assertColumnAnnotation(Authorization.class, "state", "state");
}
@Test
public void applicationInformation() {
assertAnnotationPresent(Authorization.class, "applicationInformation",
ManyToOne.class);
assertAnnotationPresent(Authorization.class, "applicationInformation",
JoinColumn.class);
}
@Test
public void subscriptionId() {
Authorization authorization = new Authorization();
authorization
.setResourceURI("http://localhost:8080/DataCustodian/espi/1_1/resource/Subscription/16228736-8e29-4807-a2a7-283be5cc253e");
assertThat(authorization.getSubscriptionId(),
is("16228736-8e29-4807-a2a7-283be5cc253e"));
}
}