clear-cache.test.js 2.92 KB
/*
 *
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2016 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

/* globals describe, it, beforeEach, afterEach, expect */
/* eslint max-nested-callbacks: 0 */
define([
    'screens/player/shared/serviceadmin',
    'screens/player/shared/test-helper/stub-service-interface',
    'screens/player/shared/test-helper/service',
    'screens/player/shared/test-helper/command-handler',
    'screens/player/firmware/cache/cache',
    'screens/player/command/command',
    'screens/player/command/clear-cache'
], function(ServiceAdmin, stubServiceInterface, serviceTestHelper, commandHandlerTestHelper, CacheSvc, PlayerCommand, cacheCmd) {
    'use strict';

    describe('screens/player/command/clear-cache', function() {

        var stubCacheService;

        beforeEach(function() {
            stubCacheService = stubServiceInterface(ServiceAdmin, CacheSvc);
        });

        afterEach(function() {
            stubCacheService.restore();
        });

        serviceTestHelper.runDefaultTests(cacheCmd, PlayerCommand.serviceName);
        commandHandlerTestHelper.runDefaultTests(cacheCmd, ['reset-firmware', 'clear-channels', 'clear-app', 'clear-all']);

        it('should call the resetFirmware method on the "reset-firmware" command', function() {
            cacheCmd.handleCommand('reset-firmware');
            expect(stubCacheService.api.resetFirmware).to.have.been.calledWith();
        });

        it('should call the clearChannelsData method on the "clear-channels" command', function() {
            cacheCmd.handleCommand('clear-channels');
            expect(stubCacheService.api.clearChannelsData).to.have.been.calledWith();
        });

        it('should call the clearAppCache method on the "clear-app" command', function() {
            cacheCmd.handleCommand('clear-app');
            expect(stubCacheService.api.clearAppCache).to.have.been.calledWith();
        });

        it('should call the clearAll method on the "clear-all" command', function() {
            cacheCmd.handleCommand('clear-all');
            expect(stubCacheService.api.clearAll).to.have.been.calledWith();
        });

        it('throws an error if the Cache service is not available', function() {
            ServiceAdmin.getService.withArgs(CacheSvc.serviceName).returns(null);
            expect(function() { cacheCmd.handleCommand('clear-all'); }).to.throw();
            ServiceAdmin.getService.restore();
        });

    });
});