//Assert Date comparison
expectedDateString = \"2023-01-16T18:43:34.3210487\"
returnedDateString = \"16/01/2023\"
expectedDate = Date.parse(\"yyyy-MM-dd'T'HH:mm:ss.SSSSSSS\", expectedDateString)
returnedDate = new Date().parse(\"dd/MM/yyyy\", returnedDateString)
assert expectedDate > returnedDate
assert expectedDate < returnedDate.plus(365)
//Assert Mapping comparison
expectedMapValue = \"Hazel\"
returnedMapValue = \"Ha\"
def genderMap = [
Hazel:'Ha',
Brown:'Br',
Blue:'Bl',
Green:'Gr'
]
assert genderMap.get(expectedMapValue) == returnedMapValue
//Assert RegEx comparison
expectedRegExValue = \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+[.][a-zA-Z]{2,}\\$\"
returnedRegExValue = \"no-reply@abc.co.uk\"
assert returnedRegExValue =~ expectedRegExValue
//Assert conditional comparison
expectedValue = \"123\"
dependantValue = true
if (dependantValue == true) {
assert expectedValue == \"123\"
} else {
assert expectedValue == \"ABC\"
}
//Assert Contains
expectedListValues = [\"animal\", \"vegetable\", \"mineral\"]
returnedListValue = \"animal\"
assert expectedListValues.contains(returnedListValue)
//Out of order simple array
expectedArray = ['FET','SOL']
returnedArray = ['SOL','FET']
returnedArraySorted = returnedArray.sort()
assert expectedArray == returnedArraySorted
//Out of order object array
import groovy.json.*
returnedObjArrayString = \"\"\"
{
\"user_identifier\" : [
{
\"value\" : \"10000571\",
\"id_type\" : {
\"value\" : \"BARCODE\",
}
},
{
\"value\" : \"atzejr-dnkuifa\",
\"id_type\" : {
\"value\" : \"OTHER_ID_1\",
}
}
]
}\"\"\"
returnedObjArray = new JsonSlurper().setType(JsonParserType.LAX).parseText(returnedObjArrayString)
//directAccessAValue = returnedObjArray.user_identifier[0].value
for (row in returnedObjArray.user_identifier) {
if (row.id_type.value == \"BARCODE\") {
assert row.value == \"10000571\"
}
if (row.id_type.value == \"OTHER_ID_1\") {
assert row.value == \"atzejr-dnkuifa\"
}
}
We also have a Groovy script that's a for-loop in a for-loop, for when we can auto match the sent JSON to the returned JSON and assert the values.
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2023-02-14T13:57:17.444-08:00","lastPublishTime":"2023-02-14T13:57:17.444-08:00","metrics":{"__typename":"MessageMetrics","views":1049},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"IDEA_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:ReadyAPIFeatureRequests/message:244522/message:245377","status":{"__typename":"IdeaStatus","previousStatus":null,"currentStatus":null},"replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Rank:rank:11":{"__typename":"Rank","id":"rank:11","position":17,"name":"Regular Contributor","color":"00537C","icon":null,"rankStyle":"OUTLINE"},"User:user:82984":{"__typename":"User","id":"user:82984","uid":82984,"login":"nastester","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-02-27T08:05:35.926-08:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.smartbear.com/t5/s/nwkab66374/m_assets/avatars/default/avatar-1.svg?time=0"},"rank":{"__ref":"Rank:rank:11"},"entityType":"USER","eventPath":"community:nwkab66374/user:82984"},"ModerationData:moderation_data:250985":{"__typename":"ModerationData","id":"moderation_data:250985","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"IdeaReplyMessage:message:250985":{"__typename":"IdeaReplyMessage","author":{"__ref":"User:user:82984"},"id":"message:250985","revisionNum":1,"uid":250985,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Idea:board:ReadyAPIFeatureRequests"},"parent":{"__ref":"IdeaTopicMessage:message:244522"},"conversation":{"__ref":"Conversation:conversation:244522"},"subject":"Re: Make Smart Assertion more useful with added features","moderationData":{"__ref":"ModerationData:moderation_data:250985"},"body":"Came here to open a feature request for this.
I wish there was a way to filter on fields in a Smart Assertion you have 'active' instead of scrolling which is quite tedious.
","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"187","kudosSumWeight":0,"repliesCount":0,"postTime":"2023-05-25T11:17:44.397-07:00","lastPublishTime":"2023-05-25T11:17:44.397-07:00","metrics":{"__typename":"MessageMetrics","views":836},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"IDEA_REPLY","eventPath":"category:ready_api_forums/community:nwkab66374board:ReadyAPIFeatureRequests/message:244522/message:250985","status":{"__typename":"IdeaStatus","previousStatus":null,"currentStatus":null},"replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"CachedAsset:text:en_US-components/nodes/NodeLink-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1741125846000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1741125846000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1741125846000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1741125846000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1741125846000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1741125846000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1741125846000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1741125846000","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1741125846000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1741125846000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1741125846000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1741125846000","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListMenu-1741125846000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListMenu-1741125846000","value":{"postTimeAsc":"Oldest","postTimeDesc":"Newest","kudosSumWeightAsc":"Least Liked","kudosSumWeightDesc":"Most Liked","sortTitle":"Sort By","sortedBy.item":" { itemName, select, postTimeAsc {Oldest} postTimeDesc {Newest} kudosSumWeightAsc {Least Liked} kudosSumWeightDesc {Most Liked} other {}}"},"localOverride":false}}}},"page":"/ideas/IdeaMessagePage/IdeaMessagePage","query":{"boardId":"readyapifeaturerequests","messageSubject":"make-smart-assertion-more-useful-with-added-features","messageId":"244522"},"buildId":"ISAhs0UxT148eG089lpQq","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"smartbear","openTelemetryServiceVersion":"25.3.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/ideas/IdeaTopicWidget/IdeaTopicWidget.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx"],"appGip":true,"scriptLoader":[]}