攻略.Mの使用。SDK。ウェブクライアントSDKを流暢に使う
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このセクションでは以下の内容を案内します。
プロジェクトを作成してください
!注以下の例は.NET Core CLIを使用しています。お好みのIDEで同等の機能を利用できます。
新しいプロジェクトを作成するには、以下のコマンドを実行します。
mkdir Walkthrough cd Walkthrough dotnet new integration-tests --framework net6.0
プロジェクトが作成されると、Content Hub SDK Fluentライブラリへの参照が必要です:
dotnet add package Stylelabs.M.Sdk.Fluent.Testing --source https://nuget.sitecore.com/resources/v3/index.json
基底クラスを作成する
!注これらの例はxUnitをテストフレームワークとして使用しています
共通機能すべてを扱うベースクラスを作成し、例えばSDKクライアントの作成などを考えます。
using System; using Stylelabs.M.Sdk.Fluent; using Stylelabs.M.Sdk.WebClient.Authentication;
namespace Integration.Tests.Walkthrough { public abstract class TestBase { protected readonly IWebMClient _mClient; protected readonly FluentClient _fluentClient;
protected TestBase() { _mClient = CreateMClient(); _fluentClient = new FluentClient(_mClient); }
private static IWebMClient CreateMClient() { var endpoint = new Uri(Configuration.Authentication.Url);
var oath = new OAuthPasswordGrant { ClientId = Configuration.Authentication.ClientId, ClientSecret = Configuration.Authentication.ClientSecret, Password = Configuration.Authentication.Password, UserName = Configuration.Authentication.Username };
return Stylelabs.M.Sdk.WebClient.MClientFactory.CreateMClient(endpoint, oath); } } }
エンティティを作成する
新しいテストクラスを作成しましょう。このクラスのテストは以下の通りです:
- 新しい Entity Definition を作り、そのメンバーを認証しましょう
- 新しい Entity を作り、そのメンバーを認証しましょう
using System.Collections.Generic; using System.Globalization; using Stylelabs.M.Sdk.Fluent.Testing.Extensions; using Stylelabs.M.Sdk.Models.Base.PropertyDefinitions; using Stylelabs.M.Sdk.WebClient.IntegrationTests.Fluent.Wrappers; using Xunit;
namespace Sdk.Fluent.Testing.Walkthrough
{
public class NewEntities : FluentTestBase
{
Fact
public void Create_New_EntityDefinition()
{
var definition = _fluentClient.EntityDefinitions
.New("My.Definition")
.NewMemberGroup("MyGroup", overviewGroup = overviewGroup
.AddPropertyDefinition
definition .AssertMemberGroup("MyGroup") .MemberGroup("MyGroup", group = group .AssertPropertyExists("myStringProperty") .AssertPropertyExists("myBooleanProperty") .AssertPropertyExists("myIntProperty")); }
Fact public void Create_New_Entity() { var entity = _fluentClient.EntityFactory .Create("My.Definition") .SetProperty("myStringProperty", "this is an string value") .SetProperty("myBooleanProperty", true) .SetProperty("myIntProperty", 100) .Save();
entity .AssertPropertyEqual("myBooleanProperty", true) .AssertPropertyNotEmpty("myStringProperty") .AssertPropertyGreaterOrEqual("myIntProperty", 100); } } }
クエリエンティティ
新しいテストクラスを作成しましょう。このクラスのテストは以下の通りです:
- エンティティ定義による Entities クエリ
- idによるクエリEntity
- 多くのクエリ Entities
using Stylelabs.M.Sdk.Fluent.Models; using Stylelabs.M.Sdk.Fluent.Testing.Extensions; using Stylelabs.M.Sdk.WebClient.IntegrationTests.Fluent.Wrappers; using Xunit;
namespace Sdk.Fluent.Testing.Walkthrough { public class QueryEntities : FluentTestBase { Fact public void Query_Entity_ByEntityDefinition() { var entities = _fluentClient.Entities .GetByDefinition("My.Definition");
foreach (FluentEntity entity in entities) { entity .AssertPropertyEqual("myBooleanProperty", true) .AssertPropertyNotEmpty("myStringProperty") .AssertPropertyEqual("myIntProperty", 100); } }
Fact public void Query_Many_Entities() { var entities = _fluentClient.Entities .GetMany(new long { 12345, 67890 }); // this should be a list of valid ids
foreach (FluentEntity entity in entities) { entity .AssertPropertyEqual("myBooleanProperty", true) .AssertPropertyNotEmpty("myStringProperty") .AssertPropertyEqual("myIntProperty", 100); } }
Fact public void Query_Entity_ById() { _fluentClient.Entities .Get(12345) // this should be a valid id .AssertPropertyEqual("myBooleanProperty", true) .AssertPropertyNotEmpty("myStringProperty") .AssertPropertyNotEqual("myIntProperty", 10); } } }