Fix unit tests and improve appstore logic

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
Morris Jobke 2017-02-23 14:56:28 -06:00 committed by Joas Schilling
parent d94e7f637f
commit ba12ba7ed7
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
4 changed files with 177 additions and 12 deletions

View File

@ -69,9 +69,7 @@ abstract class Fetcher {
* @return array
*/
protected function fetch($ETag, $content) {
$systemConfig = \OC::$server->getSystemConfig();
$appstoreenabled = $systemConfig->getValue('appstoreenabled', true);
$appstoreenabled = $this->config->getSystemValue('appstoreenabled', true);
if (!$appstoreenabled) {
return [];
@ -111,8 +109,7 @@ abstract class Fetcher {
* @return array
*/
public function get() {
$systemConfig = \OC::$server->getSystemConfig();
$appstoreenabled = $systemConfig->getValue('appstoreenabled', true);
$appstoreenabled = $this->config->getSystemValue('appstoreenabled', true);
if (!$appstoreenabled) {
return [];

View File

@ -67,6 +67,27 @@ EOD;
}
public function testGetWithFilter() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(2))
->method('getSystemValue')
->with('version')
->willReturn('11.0.0.2');
$this->config
->expects($this->at(3))
->method('getSystemValue')
->with('version')
->willReturn('11.0.0.2');
$file = $this->createMock(ISimpleFile::class);
$folder = $this->createMock(ISimpleFolder::class);
$folder
@ -106,11 +127,6 @@ EOD;
->expects($this->once())
->method('getTime')
->willReturn(1234);
$this->config
->expects($this->once())
->method('getSystemValue')
->with('version')
->willReturn('11.0.0.2');
$expected = array (
'data' =>
@ -1919,4 +1935,17 @@ EJL3BaQAQaASSsvFrcozYxrQG4VzEg==
$this->assertEquals($expected['data'], $this->fetcher->get());
}
public function testAppstoreDisabled() {
$this->config
->expects($this->once())
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(false);
$this->appData
->expects($this->never())
->method('getFolder');
$this->assertEquals([], $this->fetcher->get());
}
}

View File

@ -36,4 +36,18 @@ class CategoryFetcherTest extends FetcherBase {
$this->config
);
}
public function testAppstoreDisabled() {
$this->config
->expects($this->once())
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(false);
$this->appData
->expects($this->never())
->method('getFolder');
$this->assertEquals([], $this->fetcher->get());
}
}

View File

@ -55,16 +55,22 @@ abstract class FetcherBase extends TestCase {
$this->clientService = $this->createMock(IClientService::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->config = $this->createMock(IConfig::class);
}
public function testGetWithAlreadyExistingFileAndUpToDateTimestampAndVersion() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with(
$this->equalTo('version'),
$this->anything()
)->willReturn('11.0.0.2');
}
public function testGetWithAlreadyExistingFileAndUpToDateTimestampAndVersion() {
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
@ -95,6 +101,24 @@ abstract class FetcherBase extends TestCase {
}
public function testGetWithNotExistingFileAndUpToDateTimestampAndVersion() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(2))
->method('getSystemValue')
->with(
$this->equalTo('version'),
$this->anything()
)->willReturn('11.0.0.2');
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
@ -157,6 +181,24 @@ abstract class FetcherBase extends TestCase {
}
public function testGetWithAlreadyExistingFileAndOutdatedTimestamp() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(2))
->method('getSystemValue')
->with(
$this->equalTo('version'),
$this->anything()
)->willReturn('11.0.0.2');
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
@ -222,6 +264,24 @@ abstract class FetcherBase extends TestCase {
}
public function testGetWithAlreadyExistingFileAndNoVersion() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(2))
->method('getSystemValue')
->with(
$this->equalTo('version'),
$this->anything()
)->willReturn('11.0.0.2');
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
@ -283,6 +343,24 @@ abstract class FetcherBase extends TestCase {
}
public function testGetWithAlreadyExistingFileAndOutdatedVersion() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(2))
->method('getSystemValue')
->with(
$this->equalTo('version'),
$this->anything()
)->willReturn('11.0.0.2');
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
@ -343,6 +421,17 @@ abstract class FetcherBase extends TestCase {
}
public function testGetWithExceptionInClient() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
@ -378,6 +467,24 @@ abstract class FetcherBase extends TestCase {
}
public function testGetMatchingETag() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(2))
->method('getSystemValue')
->with(
$this->equalTo('version'),
$this->anything()
)->willReturn('11.0.0.2');
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData
@ -447,6 +554,24 @@ abstract class FetcherBase extends TestCase {
}
public function testGetNoMatchingETag() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreenabled', true)
->willReturn(true);
$this->config
->expects($this->at(2))
->method('getSystemValue')
->with(
$this->equalTo('version'),
$this->anything()
)->willReturn('11.0.0.2');
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$this->appData