Skip to content

Test Plan

Jason Spangler edited this page Aug 1, 2018 · 7 revisions
  • New things
    • Non-rottable things don't have rot cap
    • Rottable things have rot cap
      • ItemStack
      • TileEntity
      • Entity
  • Rotting
    • Rot tooltip on client shows close approximation of actual rot state, and advances over time
    • ItemStack in container (like chest and crafting grid) changes to rot thing when rots
    • ItemStack in inventory changes to rot thing when rots
    • TileEntity/Block in world changes to rot thing when rots (includes melon and pumpkin)
    • Entity changes to rot thing when rots (like EntityItem)
    • Player can eat rot with chance to get sick
    • Player can drink spoiled milk with chance to get sick
  • Preserving
    • Rot progression slows the appropriate amount for the preserving container for contained ItemStacks
    • Rot does not advance on ItemStacks in a 100% preserving container
    • ItemStack turns to rot item when it rots in a < 100% preserving container
    • If player is a preserving container, then items in player inventory are preserved and tooltips reflect preserved rot state and expiration properly
  • Stacking
    • ItemStacks with same rot expiration can be stacked
    • ItemStacks with different rot expiration can't be stacked
    • New ItemStacks created near same time can be stacked (due to time chunking, defaults to 1% in config)
  • Harvesting and Crafting
    • Harvesting a rottable item which yields rottable things that expire no later than the harvested item
    • Merging any rottable ingredients into a new rottable item has expiration no later than oldest ingredient
    • Placing a rottable item in world as a rottable tileentity/block keeps the expiration date
  • Dimensions
    • Rot is faster in the Nether (50% default configuration)
    • Rot doesn't happen in the End
    • Things harvested, crafted, or obtained in those dimensions have the proper dimension-specific rot expirations
    • Moving between dimensions changes inventory's itemstack rot expirations appropriately
      • Moving to another dimension and back to starting dimension results in approximately-unchanged rot expiration
  • Configuration
    • Enabling and disabling rot works
    • Ticks between eval works
    • Modifiers work
      • Preserving identifiers and ratios work
      • Dimension ids and ratios work
    • Rotting
      • Changing chunking percentage works
      • Disabling and enabling replace melons works
      • Days to rot identifiers and days work
      • Rotten id identifiers work
        • Rot item type specifiers work
          • scope:item@meta
          • scope:item
          • oreDictName
          • entityName
          • tileEntityResourceLocation
          • classNames (if class names enabled in WumpleUtil config)
          • minecraft:food
          • entity:spider
          • entity:player
  • Client/Server
    • Test plan passes in single player mode
    • Test plan passes in client/server mode
  • Compatibility
    • Other mod's items can be made rottable in config and work as above
    • Other mod's containers can be made preserving containers in config and work as above

Clone this wiki locally