/* * Copyright 2014 byteslounge.com (Gonçalo Marques). * * 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 com.byteslounge.cdi.test.wpm; import java.io.Serializable; import java.util.Locale; import java.util.ResourceBundle; import javax.enterprise.context.ApplicationScoped; import org.junit.Assert; import com.byteslounge.cdi.annotation.PropertyBundle; import com.byteslounge.cdi.annotation.PropertyKey; import com.byteslounge.cdi.annotation.PropertyLocale; import com.byteslounge.cdi.annotation.PropertyResolver; import com.byteslounge.cdi.test.common.ApplicationScopedBean; import com.byteslounge.cdi.test.common.DependentScopedBean; import com.byteslounge.cdi.test.configuration.TestConstants; import com.byteslounge.cdi.test.model.TestEntity; @ApplicationScoped public class ProvidedPropertyMethodResolver implements Serializable { private static final long serialVersionUID = 1L; // Lets provide a set of completely mixed up parameters in what matters to "logical" definition order @PropertyResolver public String resolveProperty(DependentScopedBean dependentScopedBean, RequestScopedBean requestScopedBean, SessionScopedBean sessionScopedBean, @PropertyBundle String bundleName, @PropertyLocale Locale locale, ApplicationScopedBean applicationScopedBean, @PropertyKey String key, Service service) { service.remove(1L); TestEntity testEntity = new TestEntity(); testEntity.setId(1L); testEntity.setDescription("Description"); testEntity = service.merge(testEntity); TestEntity other = service.findById(1L); Assert.assertEquals(new Long(1L), other.getId()); Assert.assertEquals(dependentScopedBean.getText(), TestConstants.BEAN_TEST_RETURN_VALUE); Assert.assertEquals(requestScopedBean.getText(), TestConstants.BEAN_TEST_RETURN_VALUE); Assert.assertEquals(sessionScopedBean.getText(), TestConstants.BEAN_TEST_RETURN_VALUE); Assert.assertEquals(applicationScopedBean.getText(), TestConstants.BEAN_TEST_RETURN_VALUE); Assert.assertEquals(service.getText(), TestConstants.BEAN_TEST_RETURN_VALUE); ResourceBundle bundle = ResourceBundle.getBundle(bundleName, locale); String value = bundle.getString(key); return value + TestConstants.PROVIDED_RESOLVER_SUFFIX; } }