import BaseLayoutHintRule from "../BaseLayoutHintRule";
import { IllegalStateException } from "../../../../exceptions";

describe("base layouthint rule", () => {
  it("throws when isApplicableForHint is not implemented", () => {
    expect(() => {
      BaseLayoutHintRule.isApplicableForHint("hint");
    }).toThrow(IllegalStateException);
  });

  it("throws when initAttribute is not implemented", () => {
    expect(() => {
      BaseLayoutHintRule.initAttribute();
    }).toThrow(IllegalStateException);
  });

  it("throws when initHint is not implemented", () => {
    expect(() => {
      BaseLayoutHintRule.initHint();
    }).toThrow(IllegalStateException);
  });

  it("throws when process is not implemented", () => {
    const rule = new BaseLayoutHintRule();
    expect(() => {
      rule.process();
    }).toThrow(IllegalStateException);
  });
});
