### Question:
Comparator { public static boolean isStackSetConfigEquals( final ResourceModel previousModel, final ResourceModel desiredModel) { if (!equals(previousModel.getTags(), desiredModel.getTags())) return false; if (StringUtils.compare(previousModel.getAdministrationRoleARN(), desiredModel.getAdministrationRoleARN()) != 0) return false; if (StringUtils.compare(previousModel.getDescription(), desiredModel.getDescription()) != 0) return false; if (StringUtils.compare(previousModel.getExecutionRoleName(), desiredModel.getExecutionRoleName()) != 0) return false; if (StringUtils.compare(previousModel.getTemplateBody(), desiredModel.getTemplateBody()) != 0) return false; return desiredModel.getTemplateURL() == null; }  static boolean isStackSetConfigEquals(
            final ResourceModel previousModel, final ResourceModel desiredModel); static boolean equals(final Collection<?> collection1, final Collection<?> collection2); static boolean isSelfManaged(final ResourceModel model);  }### Answer:
@Test public void testIsStackSetConfigEquals() { final ResourceModel testPreviousModel = ResourceModel.builder().tags(TAGS).build(); final ResourceModel testDesiredModel = ResourceModel.builder().tags(TAGS_TO_UPDATE).build(); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testDesiredModel.setTags(TAGS); testDesiredModel.setAdministrationRoleARN(UPDATED_ADMINISTRATION_ROLE_ARN); testPreviousModel.setAdministrationRoleARN(ADMINISTRATION_ROLE_ARN); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testDesiredModel.setAdministrationRoleARN(ADMINISTRATION_ROLE_ARN); testDesiredModel.setDescription(UPDATED_DESCRIPTION); testPreviousModel.setDescription(DESCRIPTION); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testDesiredModel.setDescription(DESCRIPTION); testDesiredModel.setExecutionRoleName(UPDATED_EXECUTION_ROLE_NAME); testPreviousModel.setExecutionRoleName(EXECUTION_ROLE_NAME); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testDesiredModel.setExecutionRoleName(EXECUTION_ROLE_NAME); testDesiredModel.setTemplateURL(UPDATED_TEMPLATE_URL); testPreviousModel.setTemplateURL(TEMPLATE_URL); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testDesiredModel.setTemplateURL(TEMPLATE_URL); testPreviousModel.setTemplateURL(TEMPLATE_URL); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testPreviousModel.setTemplateURL(TEMPLATE_URL); testDesiredModel.setTemplateURL(null); testDesiredModel.setTemplateBody(TEMPLATE_BODY); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testPreviousModel.setTemplateBody(TEMPLATE_URL); testPreviousModel.setTemplateURL(null); testDesiredModel.setTemplateBody(null); testDesiredModel.setTemplateURL(TEMPLATE_URL); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testDesiredModel.setTemplateURL(null); testPreviousModel.setTemplateURL(null); testDesiredModel.setTemplateBody(UPDATED_TEMPLATE_BODY); testPreviousModel.setTemplateBody(TEMPLATE_BODY); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isFalse(); testDesiredModel.setTemplateBody(TEMPLATE_BODY); assertThat(isStackSetConfigEquals(testPreviousModel, testDesiredModel)).isTrue(); }