use of net.n2oapp.framework.api.context.ContextProcessor in project n2o-framework by i-novus-llc.
the class InvocationProcessorTest method setUp.
@Before
public void setUp() throws Exception {
N2oInvocationFactory actionInvocationFactory = mock(N2oInvocationFactory.class);
javaDataProviderEngine = new JavaDataProviderEngine();
when(actionInvocationFactory.produce(N2oJavaDataProvider.class)).thenReturn(javaDataProviderEngine);
SqlInvocationEngine sqlInvocationEngine = new SqlInvocationEngine();
when(actionInvocationFactory.produce(N2oSqlDataProvider.class)).thenReturn(sqlInvocationEngine);
TestDataProviderEngine testDataProviderEngine = new TestDataProviderEngine();
when(actionInvocationFactory.produce(N2oTestDataProvider.class)).thenReturn(testDataProviderEngine);
ContextProcessor processor = mock(ContextProcessor.class);
when(processor.resolve(anyMap())).thenAnswer((Answer<DataSet>) invocation -> (DataSet) invocation.getArguments()[0]);
when(processor.resolve(anyString())).thenAnswer((Answer<String>) invocation -> (String) invocation.getArguments()[0]);
when(processor.resolve(anyInt())).thenAnswer((Answer<Integer>) invocation -> (Integer) invocation.getArguments()[0]);
when(processor.resolve(anyList())).thenAnswer((Answer<List>) invocation -> (List) invocation.getArguments()[0]);
when(processor.resolve(anyBoolean())).thenAnswer((Answer<Boolean>) invocation -> (Boolean) invocation.getArguments()[0]);
N2oEnvironment env = new N2oEnvironment();
env.setContextProcessor(processor);
invocationProcessor = new N2oInvocationProcessor(actionInvocationFactory);
invocationProcessor.setEnvironment(env);
}
use of net.n2oapp.framework.api.context.ContextProcessor in project n2o-framework by i-novus-llc.
the class CopyValuesControllerTest method testQuery.
private GetDataResponse testQuery(String path, ReadCompileTerminalPipeline<ReadCompileBindTerminalPipeline> pipeline, Map<String, String[]> params) {
N2oInvocationFactory invocationFactory = Mockito.mock(N2oInvocationFactory.class);
TestDataProviderEngine testDataProviderEngine = new TestDataProviderEngine();
testDataProviderEngine.setResourceLoader(new DefaultResourceLoader());
Mockito.when(invocationFactory.produce(Mockito.any(Class.class))).thenReturn(testDataProviderEngine);
ContextEngine contextEngine = Mockito.mock(ContextEngine.class);
UserContext userContext = new UserContext(contextEngine);
ContextProcessor contextProcessor = new ContextProcessor(userContext);
N2oQueryProcessor queryProcessor = new N2oQueryProcessor(invocationFactory, new N2oQueryExceptionHandler());
N2oEnvironment env = new N2oEnvironment();
env.setContextProcessor(contextProcessor);
queryProcessor.setEnvironment(env);
N2oSubModelsProcessor subModelsProcessor = Mockito.mock(N2oSubModelsProcessor.class);
Mockito.doNothing().when(subModelsProcessor);
DataProcessingStack dataProcessingStack = Mockito.mock(SpringDataProcessingStack.class);
CopyValuesController copyValuesController = new CopyValuesController(dataProcessingStack, queryProcessor, subModelsProcessor, null, null);
Map<String, Object> map = new HashMap<>();
map.put("CopyValuesController", copyValuesController);
N2oRouter router = new N2oRouter(builder.getEnvironment(), pipeline);
N2oControllerFactory factory = new N2oControllerFactory(map);
factory.setEnvironment(builder.getEnvironment());
DataController controller = new DataController(factory, builder.getEnvironment(), router);
return controller.getData(path, params, userContext);
}
use of net.n2oapp.framework.api.context.ContextProcessor in project n2o-framework by i-novus-llc.
the class DefaultValuesControllerTest method testQuery.
private GetDataResponse testQuery(String path, ReadCompileTerminalPipeline<ReadCompileBindTerminalPipeline> pipeline, Map<String, String[]> params) {
N2oInvocationFactory invocationFactory = Mockito.mock(N2oInvocationFactory.class);
TestDataProviderEngine testDataProviderEngine = new TestDataProviderEngine();
testDataProviderEngine.setResourceLoader(new DefaultResourceLoader());
Mockito.when(invocationFactory.produce(Mockito.any(Class.class))).thenReturn(testDataProviderEngine);
ContextEngine contextEngine = Mockito.mock(ContextEngine.class);
UserContext userContext = new UserContext(contextEngine);
ContextProcessor contextProcessor = new ContextProcessor(userContext);
N2oQueryProcessor queryProcessor = new N2oQueryProcessor(invocationFactory, new N2oQueryExceptionHandler());
N2oEnvironment env = new N2oEnvironment();
env.setContextProcessor(contextProcessor);
queryProcessor.setEnvironment(env);
N2oSubModelsProcessor subModelsProcessor = Mockito.mock(N2oSubModelsProcessor.class);
Mockito.doNothing().when(subModelsProcessor);
DataProcessingStack dataProcessingStack = Mockito.mock(SpringDataProcessingStack.class);
SimpleDefaultValuesController valuesController = new SimpleDefaultValuesController(dataProcessingStack, queryProcessor, subModelsProcessor, null, null);
Map<String, Object> map = new HashMap<>();
map.put("SimpleDefaultValuesController", valuesController);
N2oRouter router = new N2oRouter(builder.getEnvironment(), pipeline);
N2oControllerFactory factory = new N2oControllerFactory(map);
factory.setEnvironment(builder.getEnvironment());
DataController controller = new DataController(factory, builder.getEnvironment(), router);
return controller.getData(path, params, userContext);
}
use of net.n2oapp.framework.api.context.ContextProcessor in project n2o-framework by i-novus-llc.
the class ContextProcessorTest method setUp.
@Before
public void setUp() throws Exception {
Context service = new ContextMock();
processor = new ContextProcessor(service);
}
use of net.n2oapp.framework.api.context.ContextProcessor in project n2o-framework by i-novus-llc.
the class SecurityProvider method checkRestrictions.
/**
* Вызывает исключение, если данные не удовлетворяют фильтрам доступа
* @param data Данные
* @param securityFilters Фильтры доступа
* @param userContext Контекст пользователя
*/
public void checkRestrictions(DataSet data, SecurityFilters securityFilters, UserContext userContext) {
List<Restriction> restrictions = collectRestrictions(securityFilters, userContext);
ContextProcessor contextProcessor = new ContextProcessor(userContext);
for (Restriction securityRestriction : restrictions) {
Object realValue = data.get(securityRestriction.getFieldId());
if (realValue != null || strictFiltering) {
if (FilterType.Arity.nullary.equals(securityRestriction.getType().arity)) {
Filter securityFilter = new Filter(securityRestriction.getType());
checkByField(securityRestriction.getFieldId(), realValue, securityFilter);
} else {
Object filterValue = contextProcessor.resolve(securityRestriction.getValue());
if (filterValue != null) {
Filter securityFilter = new Filter(filterValue, securityRestriction.getType());
checkByField(securityRestriction.getFieldId(), realValue, securityFilter);
}
}
}
}
}
Aggregations