5 use Dkan\Datastore\Resource;
6 use Drupal\Core\Config\Config;
7 use Drupal\Core\Config\ConfigFactory;
8 use Drupal\Core\Config\ImmutableConfig;
9 use Drupal\Core\Database\Connection;
10 use Drupal\Core\DependencyInjection\Container;
14 use MockChain\Options;
19 use PHPUnit\Framework\TestCase;
20 use Symfony\Component\HttpFoundation\Request;
21 use Symfony\Component\HttpFoundation\RequestStack;
36 $response = $controller->runQueryGet();
37 $this->assertEquals(
"[{\"column_1\":\"hello\",\"column_2\":\"goodbye\"}]", $response->getContent());
45 $response = $controller->runQueryPost();
46 $this->assertEquals(
"[{\"column_1\":\"hello\",\"column_2\":\"goodbye\"}]", $response->getContent());
53 $pluginMessage =
"Resource hidden since dataset access level is non-public.";
57 ->add(DataModifierManager::class,
'getDefinitions', [[
'id' =>
'foobar']])
58 ->add(DataModifierManager::class,
'createInstance', DataModifierBase::class)
59 ->add(DataModifierBase::class,
'requiresModification', TRUE)
60 ->add(DataModifierBase::class,
'message', $pluginMessage)
61 ->add(DataModifierBase::class,
'httpCode', $pluginCode);
64 $response = $controller->runQueryGet();
65 $expected =
'{"message":"Resource hidden since dataset access level is non-public."}';
66 $this->assertEquals($expected, $response->getContent());
73 $container = (
new Chain($this))
74 ->add(Container::class,
"get", ConfigFactory::class)
75 ->add(ConfigFactory::class,
"get", ImmutableConfig::class)
76 ->add(ImmutableConfig::class,
"get",
"100")
79 $options = (
new Options())
81 ->add(
"database", Connection::class)
82 ->add(
'dkan_datastore.service.factory.resource', ResourceServiceFactory::class)
83 ->add(
'request_stack', RequestStack::class)
84 ->add(
'dkan_datastore.database_table_factory', DatabaseTableFactory::class)
85 ->add(
'plugin.manager.dkan_common.data_modifier', DataModifierManager::class)
88 $query =
'[SELECT * FROM abc][WHERE abc = "blah"][ORDER BY abc DESC][LIMIT 1 OFFSET 3];';
89 $body = json_encode([
"query" => $query]);
91 $row = (object) [
'record_number' => 1,
'column_1' =>
"hello",
'column_2' =>
"goodbye"];
93 return (
new Chain($this))
94 ->add(Container::class,
"get", $options)
95 ->add(RequestStack::class,
'getCurrentRequest', Request::class)
96 ->add(Request::class,
'get', $query)
97 ->add(Request::class,
'getContent', $body)
98 ->add(ConfigFactory::class,
'get', Config::class)
99 ->add(Config::class,
'get', 1000)
100 ->add(ResourceServiceFactory::class,
'getInstance', ResourceService::class)
101 ->add(ResourceService::class,
'get', Resource::class)
102 ->add(Resource::class,
'getId',
"1")
103 ->add(DatabaseTableFactory::class,
'getInstance', DatabaseTable::class)
104 ->add(DatabaseTable::class,
'query', [$row])
105 ->add(DataModifierManager::class,
'getDefinitions', [])
106 ->add(DataModifierManager::class,
'createInstance', DataModifierBase::class)
107 ->add(DataModifierBase::class,
'requiresModification', FALSE);