remotingserviceconfigprocessortests.java
来自「java 和flex的整合,主要是spring和flex的整合,不可多得啊」· Java 代码 · 共 161 行
JAVA
161 行
/* * Copyright 2002-2009 the original author or authors. * * 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.springframework.flex.remoting;import static org.mockito.Mockito.when;import org.mockito.Mock;import org.mockito.MockitoAnnotations;import org.springframework.beans.factory.BeanFactory;import org.springframework.flex.config.MessageBrokerConfigProcessor;import org.springframework.flex.core.AbstractMessageBrokerTests;import flex.messaging.MessageBroker;import flex.messaging.services.RemotingService;import flex.messaging.services.remoting.adapters.JavaAdapter;public class RemotingServiceConfigProcessorTests extends AbstractMessageBrokerTests { private String servicesConfigPath; private @Mock BeanFactory beanFactory; @Override public void setUp() { MockitoAnnotations.initMocks(this); } public void testRemotingServiceAddedWithBrokerDefaultChannels() throws Exception { setDirty(); addStartupProcessor(new RemotingServiceConfigProcessor()); this.servicesConfigPath = "classpath:org/springframework/flex/remoting/default-channels-config.xml"; RemotingService remotingService = (RemotingService) getMessageBroker().getServiceByType(RemotingService.class.getName()); assertTrue("The broker's default channel was not assigned to the RemotingService", remotingService.getDefaultChannels().contains( "my-default-amf")); assertEquals("The default adapter was not set", "java-object", remotingService.getDefaultAdapter()); } public void testRemotingServiceAddedWithCustomDefaults() throws Exception { setDirty(); RemotingServiceConfigProcessor processor = new RemotingServiceConfigProcessor(); processor.setBeanFactory(this.beanFactory); processor.setDefaultAdapterId("my-adapter"); processor.setDefaultChannels(new String[] { "my-custom-default-amf" }); addStartupProcessor(processor); this.servicesConfigPath = "classpath:org/springframework/flex/remoting/default-channels-config.xml"; when(this.beanFactory.getType("my-adapter")).thenReturn(TestAdapter.class); RemotingService remotingService = (RemotingService) getMessageBroker().getServiceByType(RemotingService.class.getName()); assertTrue("The default channel was not set", remotingService.getDefaultChannels().contains("my-custom-default-amf")); assertEquals("The default adapter was not set", "my-adapter", remotingService.getDefaultAdapter()); } public void testRemotingServiceAddedWithInferredDefaultChannels() throws Exception { setDirty(); addStartupProcessor(new RemotingServiceConfigProcessor()); this.servicesConfigPath = "classpath:org/springframework/flex/remoting/inferred-default-channels-config.xml"; RemotingService remotingService = (RemotingService) getMessageBroker().getServiceByType(RemotingService.class.getName()); assertTrue("The default channel was not determined", remotingService.getDefaultChannels().contains("my-inferred-default-amf")); assertEquals("The default adapter was not set", "java-object", remotingService.getDefaultAdapter()); } public void testRemotingServiceAddedWithInvalidCustomChannels() throws Exception { setDirty(); RemotingServiceConfigProcessor processor = new RemotingServiceConfigProcessor(); processor.setDefaultChannels(new String[] { "my-bogus-channel" }); addStartupProcessor(processor); this.servicesConfigPath = "classpath:org/springframework/flex/remoting/default-channels-config.xml"; try { getMessageBroker(); fail("Invalid channels not detected"); } catch (IllegalArgumentException ex) { // expected setDirty(); } } public void testRemotingServiceAddedWithInvalidDefaultId() throws Exception { setDirty(); RemotingServiceConfigProcessor processor = new RemotingServiceConfigProcessor(); processor.setBeanFactory(this.beanFactory); processor.setDefaultAdapterId("my-adapter"); processor.setDefaultChannels(new String[] { "my-custom-default-amf" }); addStartupProcessor(processor); this.servicesConfigPath = "classpath:org/springframework/flex/remoting/default-channels-config.xml"; try { getMessageBroker().getServiceByType(RemotingService.class.getName()); fail("An error should be thrown."); } catch (IllegalArgumentException ex) { // expected } } public void testRemotingServiceExists() throws Exception { setDirty(); RemotingServiceChecker checker = new RemotingServiceChecker(); addStartupProcessor(checker); addStartupProcessor(new RemotingServiceConfigProcessor()); this.servicesConfigPath = super.getServicesConfigPath(); getMessageBroker(); assertTrue("Processors not invoked", checker.beforeInvoked && checker.afterInvoked); assertSame("Pre-configured RemotingService should be unmodified", checker.beforeRemotingService, checker.afterRemotingService); } @Override protected String getServicesConfigPath() { return this.servicesConfigPath; } private static class RemotingServiceChecker implements MessageBrokerConfigProcessor { protected RemotingService beforeRemotingService; protected RemotingService afterRemotingService; protected boolean beforeInvoked = false; protected boolean afterInvoked = false; public MessageBroker processAfterStartup(MessageBroker broker) { this.afterInvoked = true; this.afterRemotingService = (RemotingService) broker.getServiceByType(RemotingService.class.getName()); assertNotNull(this.afterRemotingService); return broker; } public MessageBroker processBeforeStartup(MessageBroker broker) { this.beforeInvoked = true; this.beforeRemotingService = (RemotingService) broker.getServiceByType(RemotingService.class.getName()); assertNotNull(this.beforeRemotingService); return broker; } } private static class TestAdapter extends JavaAdapter { }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?