{
  "title": "LendingPool: Usage as collateral",
  "description": "Test cases for the setUserUseReserveAsCollateral() function.",
  "stories": [
    {
      "description": "User 0 Deposits 1000 DAI, disables DAI as collateral",
      "actions": [
        {
          "name": "mint",
          "args": {
            "reserve": "DAI",
            "amount": "1000",
            "user": "0"
          },
          "expected": "success"
        },
        {
          "name": "approve",
          "args": {
            "reserve": "DAI",
            "user": "0"
          },
          "expected": "success"
        },
        {
          "name": "deposit",
          "args": {
            "reserve": "DAI",
            "amount": "1000",
            "user": "0"
          },
          "expected": "success"
        },
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "DAI",
            "user": "0",
            "useAsCollateral": "false"
          },
          "expected": "success"
        }
      ]
    },
    {
      "description": "User 1 Deposits 2 WETH, disables WETH as collateral, borrows 400 DAI (revert expected)",
      "actions": [
        {
          "name": "mint",
          "args": {
            "reserve": "WETH",
            "amount": "2",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "approve",
          "args": {
            "reserve": "WETH",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "deposit",
          "args": {
            "reserve": "WETH",
            "amount": "2",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "WETH",
            "user": "1",
            "useAsCollateral": "false"
          },
          "expected": "success"
        },
        {
          "name": "borrow",
          "args": {
            "reserve": "DAI",
            "amount": "400",
            "borrowRateMode": "variable",
            "user": "1"
          },
          "expected": "revert",
          "revertMessage": "The collateral balance is 0"
        }
      ]
    },
    {
      "description": "User 1 enables WETH as collateral, borrows 400 DAI",
      "actions": [
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "WETH",
            "user": "1",
            "useAsCollateral": "true"
          },
          "expected": "success"
        },
        {
          "name": "borrow",
          "args": {
            "reserve": "DAI",
            "amount": "400",
            "borrowRateMode": "variable",
            "user": "1"
          },
          "expected": "success"
        }
      ]
    },
    {
      "description": "User 1 disables WETH as collateral (revert expected)",
      "actions": [
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "WETH",
            "user": "1",
            "useAsCollateral": "false"
          },
          "expected": "revert",
          "revertMessage": "User deposit is already being used as collateral"
        }
      ]
    },
    {
      "description": "User 1 Deposits 10 AAVE, disables WETH as collateral. Should revert as 10 AAVE are not enough to cover the debt (revert expected)",
      "actions": [
        {
          "name": "mint",
          "args": {
            "reserve": "AAVE",
            "amount": "10",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "approve",
          "args": {
            "reserve": "AAVE",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "deposit",
          "args": {
            "reserve": "AAVE",
            "amount": "10",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "WETH",
            "user": "1",
            "useAsCollateral": "false"
          },
          "expected": "revert"
        }
      ]
    },
    {
      "description": "User 1 Deposits 640 more AAVE (enough to cover the DAI debt), disables WETH as collateral",
      "actions": [
        {
          "name": "mint",
          "args": {
            "reserve": "AAVE",
            "amount": "640",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "deposit",
          "args": {
            "reserve": "AAVE",
            "amount": "640",
            "user": "1"
          },
          "expected": "success"
        },
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "WETH",
            "user": "1",
            "useAsCollateral": "false"
          },
          "expected": "success"
        }
      ]
    },
    {
      "description": "User 1 disables AAVE as collateral (revert expected)",
      "actions": [
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "AAVE",
            "user": "1",
            "useAsCollateral": "false"
          },
          "expected": "revert"
        }
      ]
    },
    {
      "description": "User 1 reenables WETH as collateral",
      "actions": [
        {
          "name": "setUseAsCollateral",
          "args": {
            "reserve": "WETH",
            "user": "1",
            "useAsCollateral": "true"
          },
          "expected": "success"
        }
      ]
    }
  ]
}