You need to sign in to do that
Don't have an account?
SIVA KUMAR 507
Hey Guys I need t test class for the below code please guy help me
Apex Class:
_________
@RestResource(urlMapping='/v1/KnowledgeArticles/*')
global with sharing class KnowledgeMigrationService {
@HttpPost
global static String createArticle(String articleJsonStr) {
Knowledge__kav article = (Knowledge__kav)System.JSON.deserialize(EncodingUtil.urlDecode(articleJsonStr,'UTF-8'), Knowledge__kav.class);
List<Knowledge__kav> articles = [SELECT Id, PublishStatus, Body__c, Title, UrlName, ArticleNumber, KnowledgeArticleId FROM Knowledge__kav WHERE UrlName =: article.UrlName];
if(articles.Size() == 0) {
article.Id = null;
insert article;
return 'New article created';
}
else if(articles[0].PublishStatus == 'Draft') {
article.Id = articles[0].Id;
update article;
return 'Existing draft status article updated';
}
else if(articles[0].PublishStatus == 'Online') {
String id = KbManagement.PublishingService.editOnlineArticle(articles[0].KnowledgeArticleId, false);
List<Knowledge__kav> articles2 = [SELECT Id, PublishStatus, Body__c, Title, UrlName, ArticleNumber, KnowledgeArticleId FROM Knowledge__kav WHERE UrlName =: article.UrlName AND PublishStatus = 'Draft'];
article.Id = articles2[0].Id;
update article;
KbManagement.PublishingService.publishArticle(articles2[0].KnowledgeArticleId, false);
return 'Existing published status article updated';
}
else if(articles[0].PublishStatus == 'Archived') {
String id = KbManagement.PublishingService.editArchivedArticle(articles[0].KnowledgeArticleId);
List<Knowledge__kav> articles2 = [SELECT Id, PublishStatus, Body__c, Title, UrlName, ArticleNumber, KnowledgeArticleId FROM Knowledge__kav WHERE UrlName =: article.UrlName AND PublishStatus = 'Draft'];
article.Id = articles2[0].Id;
update article;
KbManagement.PublishingService.publishArticle(articles2[0].KnowledgeArticleId, false);
KbManagement.PublishingService.archiveOnlineArticle(articles2[0].KnowledgeArticleId, null);
return 'Existing archived status article updated';
}
return 'success';
}
}
_________
@RestResource(urlMapping='/v1/KnowledgeArticles/*')
global with sharing class KnowledgeMigrationService {
@HttpPost
global static String createArticle(String articleJsonStr) {
Knowledge__kav article = (Knowledge__kav)System.JSON.deserialize(EncodingUtil.urlDecode(articleJsonStr,'UTF-8'), Knowledge__kav.class);
List<Knowledge__kav> articles = [SELECT Id, PublishStatus, Body__c, Title, UrlName, ArticleNumber, KnowledgeArticleId FROM Knowledge__kav WHERE UrlName =: article.UrlName];
if(articles.Size() == 0) {
article.Id = null;
insert article;
return 'New article created';
}
else if(articles[0].PublishStatus == 'Draft') {
article.Id = articles[0].Id;
update article;
return 'Existing draft status article updated';
}
else if(articles[0].PublishStatus == 'Online') {
String id = KbManagement.PublishingService.editOnlineArticle(articles[0].KnowledgeArticleId, false);
List<Knowledge__kav> articles2 = [SELECT Id, PublishStatus, Body__c, Title, UrlName, ArticleNumber, KnowledgeArticleId FROM Knowledge__kav WHERE UrlName =: article.UrlName AND PublishStatus = 'Draft'];
article.Id = articles2[0].Id;
update article;
KbManagement.PublishingService.publishArticle(articles2[0].KnowledgeArticleId, false);
return 'Existing published status article updated';
}
else if(articles[0].PublishStatus == 'Archived') {
String id = KbManagement.PublishingService.editArchivedArticle(articles[0].KnowledgeArticleId);
List<Knowledge__kav> articles2 = [SELECT Id, PublishStatus, Body__c, Title, UrlName, ArticleNumber, KnowledgeArticleId FROM Knowledge__kav WHERE UrlName =: article.UrlName AND PublishStatus = 'Draft'];
article.Id = articles2[0].Id;
update article;
KbManagement.PublishingService.publishArticle(articles2[0].KnowledgeArticleId, false);
KbManagement.PublishingService.archiveOnlineArticle(articles2[0].KnowledgeArticleId, null);
return 'Existing archived status article updated';
}
return 'success';
}
}
Hi Siva,
Your code is long and complicated so you can take reference from my code.
And
Hope it would help you.
Don't forget to mark it as Best Answer
Thank You