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

		// 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.GROWING, expected1, 2, 3));
		when(farmingTracker.predictPatch(patch2))
			.thenReturn(new PatchPrediction(Produce.CABBAGE, CropState.GROWING, expected2, 1, 3));

		farmingContractManager.setContract(Produce.CABBAGE);

		assertEquals(SummaryState.IN_PROGRESS, farmingContractManager.getSummary());
		assertEquals(CropState.GROWING, farmingContractManager.getContractCropState());
		// Prefer closest estimated time
		assertEquals(expected1, farmingContractManager.getCompletionTime());
	}