import {DropdownProvider} from '../DropdownProvider'; import ValidationUtil from '../../../definitions/validation/ValidationUtil'; /** * This class validates an instance of DropdownProvider. This is intended to be used by consumers of this library in * their tests to validate their implementations. Knowing products have incorporated this into their test suite will * allow breaking changes to be introduced in the library. */ export class DropdownProviderValidator { public static validate(dropdownProvider: DropdownProvider): void { DropdownProviderValidator.validateFunctions(dropdownProvider); DropdownProviderValidator.validateDropdownCreation(dropdownProvider); DropdownProviderValidator.validateDropdownShowingAndHiding(dropdownProvider); DropdownProviderValidator.validateDropdownItemShowingAndHiding(dropdownProvider); } private static validateFunctions(dropdownProvider: DropdownProvider): void { ValidationUtil.checkFunctionExists('dropdownProvider', dropdownProvider, 'create'); ValidationUtil.checkFunctionExists('dropdownProvider', dropdownProvider, 'showAt'); ValidationUtil.checkFunctionExists('dropdownProvider', dropdownProvider, 'hide'); ValidationUtil.checkFunctionExists('dropdownProvider', dropdownProvider, 'disableItem'); ValidationUtil.checkFunctionExists('dropdownProvider', dropdownProvider, 'enableItem'); } private static validateDropdownCreation(dropdownProvider: DropdownProvider) { // TODO } private static validateDropdownShowingAndHiding(dropdownProvider: DropdownProvider) { // TODO } private static validateDropdownItemShowingAndHiding(dropdownProvider: DropdownProvider) { // TODO } }