Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
DesignPatternTest.cpp
[詳解]
1
5
6#include "pch.h"
7#include "DesignPattern.hpp"
8#include "TString.h"
9
10using namespace Microsoft::VisualStudio::CppUnitTestFramework;
11using namespace alt;
12
14
16{
17 TEST_CLASS (DesignPatternTest)
18 {
19 public:
20 TEST_CLASS_INITIALIZE (ClassInitialize)
21 {
22 Logger::WriteMessage ("class initialize.\n");
23 }
24
25 TEST_CLASS_CLEANUP (ClassCleanup)
26 {
27 Logger::WriteMessage ("class cleanup.\n");
28 }
29
30 TEST_METHOD_INITIALIZE (MethodInitialize)
31 {
32 Logger::WriteMessage ("method initialize.\n");
33 }
34
35 TEST_METHOD_CLEANUP (MethodCleanup)
36 {
37 Logger::WriteMessage ("method cleanup.\n");
38 }
39
40 TEST_METHOD (SingletonTest)
41 {
43 *pString1 = _T ("SINGLETON_TEST");
44
46
47 Assert::AreEqual (_T ("SINGLETON_TEST"), pString2->Ptr ());
48 Assert::IsTrue (pString1 == pString2);
49 Assert::AreEqual (pString1->Ctr (), pString2->Ctr ());
50 }
51
52 static bool testFunction (size_t count, size_t total)
53 {
54 TString string (_T ("CommandFunction:"));
55 string << static_cast<const int>(count) << _T ("/") << static_cast<const int>(total) << _T ("\n");
56 Logger::WriteMessage (string.Ptr ());
57
58 return true;
59 }
60
61 TEST_METHOD (CommandTest)
62 {
63 // ラムダ式ではcommander.Execute()する頃にはすでに
64 // 消滅しており、std::weak_ptrなども試してみましたが
65 // うまくいかず、今後の課題です。
66 typedef bool (*CommandFunction)(size_t, size_t);
67
69
70 for (int i = 0; i < 10; i++)
71 {
73 command.SetFunction (testFunction);
74 command.SetWaitTime (1000);
75 commander.Add (&command);
76 }
77
78 commander.Execute ();
79 }
80 };
81}
種々のデザインパターンの実装クラス
文字列に関するWindowsAPIを集約したクラス
プリコンパイル済みヘッダー ファイルです。
文字列に関するWindowsAPIを集約したクラス
Definition: TString.h:17
LPCTSTR APIENTRY Ctr() const
内部で確保している文字列ポインタを取得します。
Definition: TString.h:46
LPTSTR APIENTRY Ptr() const
内部で確保している文字列ポインタを取得します。
Definition: TString.h:42
コマンド テンプレート
void SetWaitTime(long time)
void SetFunction(CommandFunction function)
コマンド テンプレート
シングルトン テンプレート
static T * Instance()
唯一となるインスタンスを取得します。
TEST_CLASS(DesignPatternTest)
Definition: DBLibrary.h:12