-- Verify kakeibo:insert_item on pg

BEGIN;

SELECT has_function_privilege('kakeibo.insert_item(INTEGER, TEXT, TEXT, INTEGER, TEXT)', 'EXECUTE');

SET search_path = kakeibo;

DO $$
  DECLARE
    v_transaction_id INTEGER;
    v_item_id INTEGER;
  BEGIN
    SELECT insert_transaction(0, '2023-03-15', 'テスト') INTO v_transaction_id;
    SELECT insert_item(v_transaction_id, 'カテ', 'サブカテ', 298, 'メモ') INTO v_item_id;

    PERFORM *
      FROM items
      WHERE id = v_item_id
      AND transaction_id = v_transaction_id
      AND category = 'カテ'
      AND subcategory = 'サブカテ'
      AND amount = 298
      AND note = 'メモ';
    IF NOT FOUND THEN
      RAISE EXCEPTION 'Inserted data is not found.';
    END IF;
  END
$$;

ROLLBACK;
