Skip to content

Commit 5ff9594

Browse files
committed
Add examples
1 parent 1536998 commit 5ff9594

File tree

365 files changed

+10547
-268
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

365 files changed

+10547
-268
lines changed

.idea/.idea.UnityTestExamples/.idea/.gitignore

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/.idea.UnityTestExamples/.idea/indexLayout.xml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/.idea.UnityTestExamples/.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/APIExamples.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/APIExamples/Scripts.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/APIExamples/Scripts/Editor.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "APIExamples.Editor",
3+
"rootNamespace": "",
4+
"references": [
5+
"GUID:37180d43aa4b85c4b9076e2ef48a3b2a"
6+
],
7+
"includePlatforms": [
8+
"Editor"
9+
],
10+
"excludePlatforms": [],
11+
"allowUnsafeCode": false,
12+
"overrideReferences": false,
13+
"precompiledReferences": [],
14+
"autoReferenced": true,
15+
"defineConstraints": [],
16+
"versionDefines": [],
17+
"noEngineReferences": false
18+
}

Assets/APIExamples/Scripts/Editor/APIExamples.Editor.asmdef.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/APIExamples/Scripts/Editor/UnityCodeCoverage.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Copyright (c) 2021 Koji Hasegawa.
2+
// This software is released under the MIT License.
3+
4+
using UnityEditor;
5+
using UnityEditor.TestTools.CodeCoverage;
6+
7+
namespace APIExamples.Editor.UnityCodeCoverage
8+
{
9+
/// <summary>
10+
/// Code CoverageパッケージのコールバックAPI使用例
11+
/// <see href="https://docs.unity3d.com/Packages/[email protected]/api/UnityEditor.TestTools.CodeCoverage.Events.html"/>
12+
/// </summary>
13+
public static class EventsExample
14+
{
15+
[InitializeOnLoadMethod]
16+
private static void SetupListeners()
17+
{
18+
Events.onCoverageSessionStarted += OnSessionStarted;
19+
Events.onCoverageSessionFinished += OnSessionFinished;
20+
Events.onCoverageSessionPaused += OnSessionPaused;
21+
Events.onCoverageSessionUnpaused += OnSessionUnpaused;
22+
}
23+
24+
private static void OnSessionStarted(SessionEventInfo args)
25+
{
26+
// コードカバレッジセッションが開始されるときに呼ばれます
27+
}
28+
29+
private static void OnSessionFinished(SessionEventInfo args)
30+
{
31+
// コードカバレッジセッションが終了したときに呼ばれます
32+
}
33+
34+
private static void OnSessionPaused(SessionEventInfo args)
35+
{
36+
// コードカバレッジセッションが一時停止したときに呼ばれます
37+
}
38+
39+
private static void OnSessionUnpaused(SessionEventInfo args)
40+
{
41+
// コードカバレッジセッションの一時停止が解除されたときに呼ばれます
42+
}
43+
}
44+
}

Assets/APIExamples/Scripts/Editor/UnityCodeCoverage/EventsExample.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/APIExamples/Scripts/Editor/UnityTestFramework.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// Copyright (c) 2021 Koji Hasegawa.
2+
// This software is released under the MIT License.
3+
4+
using UnityEditor;
5+
using UnityEditor.TestTools.TestRunner.Api;
6+
using UnityEngine;
7+
8+
namespace APIExamples.Editor.UnityTestFramework
9+
{
10+
/// <summary>
11+
/// Test RunnerコールバックAPI使用例
12+
/// <see href="https://docs.unity3d.com/Packages/[email protected]/manual/reference-ierror-callbacks.html"/>
13+
/// </summary>
14+
/// <remarks>
15+
/// `OnError()`を除いて、<see cref="UnityEditor.TestTools.TestRunner.Api.ICallbacks"/>に定義されている
16+
/// `OnError()`は、<see cref="UnityEditor.TestTools.TestRunner.Api.IErrorCallbacks"/>にのみ定義されている
17+
/// </remarks>
18+
/// <inheritdoc/>
19+
public class CallbacksExample : IErrorCallbacks
20+
{
21+
[InitializeOnLoadMethod]
22+
private static void SetupCallbacks()
23+
{
24+
var api = ScriptableObject.CreateInstance<TestRunnerApi>();
25+
api.RegisterCallbacks(new CallbacksExample());
26+
}
27+
28+
/// <inheritdoc/>
29+
public void RunStarted(ITestAdaptor testsToRun)
30+
{
31+
// テスト実行が開始されるときに呼ばれます
32+
}
33+
34+
/// <inheritdoc/>
35+
public void RunFinished(ITestResultAdaptor result)
36+
{
37+
// テスト実行が終了したときに呼ばれます
38+
}
39+
40+
/// <inheritdoc/>
41+
public void TestStarted(ITestAdaptor test)
42+
{
43+
// 個々の(Test Runnerウィンドウにおける)ツリーノードが開始されるときに呼ばれます
44+
}
45+
46+
/// <inheritdoc/>
47+
public void TestFinished(ITestResultAdaptor result)
48+
{
49+
// 個々の(Test Runnerウィンドウにおける)ツリーノードが終了したときに呼ばれます
50+
}
51+
52+
/// <inheritdoc/>
53+
public void OnError(string message)
54+
{
55+
// エラー発生時に呼ばれます(テストの失敗では呼ばれません)
56+
}
57+
}
58+
}

Assets/APIExamples/Scripts/Editor/UnityTestFramework/CallbacksExample.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/APIExamples/Scripts/Runtime.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"name": "APIExamples"
3+
}

Assets/APIExamples/Scripts/Runtime/APIExamples.asmdef.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright (c) 2021 Koji Hasegawa.
2+
// This software is released under the MIT License.
3+
4+
using System;
5+
6+
namespace APIExamples.NUnit
7+
{
8+
/// <summary>
9+
/// テストでは Key1 + Key2 でユニークとみなす。<see cref="IEquatable{T}"/>は実装していない
10+
/// </summary>
11+
public class CompositeKeySUT
12+
{
13+
public readonly string Key1;
14+
public readonly string Key2;
15+
public int Value;
16+
17+
public CompositeKeySUT(string key1, string key2, int value)
18+
{
19+
this.Key1 = key1;
20+
this.Key2 = key2;
21+
this.Value = value;
22+
}
23+
}
24+
}

Assets/APIExamples/Scripts/Runtime/CompositeKeySUT.cs.meta

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
// Copyright (c) 2021 Koji Hasegawa.
2+
// This software is released under the MIT License.
3+
4+
using System;
5+
6+
namespace APIExamples.NUnit
7+
{
8+
/// <summary>
9+
/// 元素的な属性
10+
/// このファイルは、BasicExamples/Scripts/Runtime/Entities/Enums/下にあるのもののコピーです
11+
/// </summary>
12+
/// <remarks>
13+
/// 当たり障りなさそうな陰陽五行とします。種類は未来永劫バージョンアップしても増えません(フラグ
14+
/// </remarks>
15+
public enum Element
16+
{
17+
None,
18+
Wood,
19+
Fire,
20+
Water,
21+
Earth,
22+
Metal,
23+
}
24+
25+
public static class ElementExtensions
26+
{
27+
/// <summary>
28+
/// 属性名を返す
29+
/// </summary>
30+
/// <param name="self"></param>
31+
/// <returns></returns>
32+
public static string GetName(this Element self)
33+
{
34+
switch (self)
35+
{
36+
case Element.None:
37+
return "無";
38+
case Element.Wood:
39+
return "木";
40+
case Element.Fire:
41+
return "火";
42+
case Element.Water:
43+
return "水";
44+
case Element.Earth:
45+
return "土";
46+
case Element.Metal:
47+
return "金";
48+
default:
49+
throw new ArgumentException($"Unknown Element: {self.ToString()}");
50+
}
51+
}
52+
53+
/// <summary>
54+
/// 属性攻撃を受けたときの被ダメージ倍率を返す
55+
/// </summary>
56+
/// <param name="self"></param>
57+
/// <param name="attack">攻撃の属性</param>
58+
/// <returns></returns>
59+
public static float GetDamageMultiplier(this Element self, Element attack)
60+
{
61+
switch (self)
62+
{
63+
case Element.Wood:
64+
switch (attack)
65+
{
66+
case Element.Fire:
67+
return 2.0f;
68+
case Element.Water:
69+
return 0.5f;
70+
default:
71+
return 1.0f;
72+
}
73+
case Element.Fire:
74+
switch (attack)
75+
{
76+
case Element.Water:
77+
return 2.0f;
78+
case Element.Wood:
79+
return 0.5f;
80+
default:
81+
return 1.0f;
82+
}
83+
case Element.Water:
84+
switch (attack)
85+
{
86+
case Element.Wood:
87+
return 2.0f;
88+
case Element.Fire:
89+
return 0.5f;
90+
default:
91+
return 1.0f;
92+
}
93+
case Element.Earth:
94+
switch (attack)
95+
{
96+
case Element.Metal:
97+
return 2.0f;
98+
default:
99+
return 0.5f;
100+
}
101+
case Element.Metal:
102+
switch (attack)
103+
{
104+
case Element.Earth:
105+
return 2.0f;
106+
default:
107+
return 0.5f;
108+
}
109+
default:
110+
return 1.0f;
111+
}
112+
}
113+
}
114+
}

0 commit comments

Comments
 (0)