Skip to content

Commit

Permalink
fix #5536 add configFilterChain test case (#5539)
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoheng1 authored Apr 30, 2021
1 parent 7d110e6 commit 9fb0ec3
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* 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.alibaba.nacos.client.config.filter.impl;

import com.alibaba.nacos.api.exception.NacosException;
import org.junit.Assert;
import org.junit.Test;

public class ConfigFilterChainTest {

@Test
public void testConfigFilterChain() {
ConfigFilterChainManager configFilterChainManager = new ConfigFilterChainManager(null);
configFilterChainManager.addFilter(new DemoFilter1());
configFilterChainManager.addFilter(new DemoFilter2());
ConfigRequest configRequest = new ConfigRequest();
try {
configFilterChainManager.doFilter(configRequest, null);
Assert.assertEquals(DemoFilter1.class.getName(), configRequest.getParameter("filter1"));
Assert.assertEquals(DemoFilter2.class.getName(), configRequest.getParameter("filter2"));
} catch (NacosException e) {
e.printStackTrace();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* 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.alibaba.nacos.client.config.filter.impl;

import com.alibaba.nacos.api.config.filter.IConfigFilter;
import com.alibaba.nacos.api.config.filter.IConfigFilterChain;
import com.alibaba.nacos.api.config.filter.IConfigRequest;
import com.alibaba.nacos.api.config.filter.IConfigResponse;
import com.alibaba.nacos.api.config.filter.IFilterConfig;
import com.alibaba.nacos.api.exception.NacosException;

import java.util.Properties;

public class DemoFilter1 implements IConfigFilter {

private static final String DEFAULT_NAME = DemoFilter1.class.getName();

@Override
public void init(IFilterConfig filterConfig) {

}

@Override
public void init(Properties properties) {

}

@Override
public void doFilter(IConfigRequest request, IConfigResponse response, IConfigFilterChain filterChain)
throws NacosException {
request.putParameter("filter1", DEFAULT_NAME);
filterChain.doFilter(request, response);
}

@Override
public int getOrder() {
return 0;
}

@Override
public String getFilterName() {
return DEFAULT_NAME;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* 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.alibaba.nacos.client.config.filter.impl;

import com.alibaba.nacos.api.config.filter.IConfigFilter;
import com.alibaba.nacos.api.config.filter.IConfigFilterChain;
import com.alibaba.nacos.api.config.filter.IConfigRequest;
import com.alibaba.nacos.api.config.filter.IConfigResponse;
import com.alibaba.nacos.api.config.filter.IFilterConfig;
import com.alibaba.nacos.api.exception.NacosException;

import java.util.Properties;

public class DemoFilter2 implements IConfigFilter {

private static final String DEFAULT_NAME = DemoFilter2.class.getName();

@Override
public void init(IFilterConfig filterConfig) {

}

@Override
public void init(Properties properties) {

}

@Override
public void doFilter(IConfigRequest request, IConfigResponse response, IConfigFilterChain filterChain)
throws NacosException {
request.putParameter("filter2", DEFAULT_NAME);
filterChain.doFilter(request, response);
}

@Override
public int getOrder() {
return 0;
}

@Override
public String getFilterName() {
return DEFAULT_NAME;
}
}

0 comments on commit 9fb0ec3

Please sign in to comment.