public void setContract(@Nullable Produce contract)
	{
		this.contract = contract;
		setStoredContract(contract);
		handleContractState();
	}
@Test
	public void cabbageContractCabbageGrowingAndCabbageDiseased()
	{
		final long unixNow = Instant.now().getEpochSecond();
		final long expectedTime = unixNow + 60;

		// Get the two allotment patches
		final FarmingPatch patch1 = farmingGuildPatches.get(Varbits.FARMING_4773);
		final FarmingPatch patch2 = farmingGuildPatches.get(Varbits.FARMING_4774);

		assertNotNull(patch1);
		assertNotNull(patch2);

		// Specify the two allotment patches
		when(farmingTracker.predictPatch(patch1))
			.thenReturn(new PatchPrediction(Produce.CABBAGE, CropState.DISEASED, 0, 2, 3));
		when(farmingTracker.predictPatch(patch2))
			.thenReturn(new PatchPrediction(Produce.CABBAGE, CropState.GROWING, expectedTime, 2, 3));

		farmingContractManager.setContract(Produce.CABBAGE);

		assertEquals(SummaryState.IN_PROGRESS, farmingContractManager.getSummary());
		// Prefer healthy cabbages
		assertEquals(CropState.GROWING, farmingContractManager.getContractCropState());
		assertEquals(expectedTime, farmingContractManager.getCompletionTime());
	}