diff --git a/src/RA_Integration.vcxproj b/src/RA_Integration.vcxproj index c4ea11079..611699a5a 100644 --- a/src/RA_Integration.vcxproj +++ b/src/RA_Integration.vcxproj @@ -83,7 +83,6 @@ - @@ -217,7 +216,6 @@ - diff --git a/src/RA_Integration.vcxproj.filters b/src/RA_Integration.vcxproj.filters index 21d4e6a4f..55261723d 100644 --- a/src/RA_Integration.vcxproj.filters +++ b/src/RA_Integration.vcxproj.filters @@ -330,9 +330,6 @@ UI\Win32 - - Data\Models - UI\ViewModels @@ -351,9 +348,6 @@ UI\ViewModels - - Data\Models - UI\ViewModels @@ -402,6 +396,9 @@ Services\Impl + + Data\Models + @@ -827,9 +824,6 @@ UI\Win32 - - Data\Models - UI\Win32\Bindings @@ -854,9 +848,6 @@ API - - Data\Models - UI\ViewModels @@ -983,6 +974,9 @@ Services\Impl + + Data\Models + diff --git a/src/data/context/SessionTracker.cpp b/src/data/context/SessionTracker.cpp index a17f723be..67c6aaac6 100644 --- a/src/data/context/SessionTracker.cpp +++ b/src/data/context/SessionTracker.cpp @@ -15,6 +15,7 @@ #include "services\IFileSystem.hh" #include "services\ILocalStorage.hh" #include "services\IThreadPool.hh" +#include "services\ServiceLocator.hh" #include "ui\viewmodels\WindowManager.hh" diff --git a/src/devkit/RADevKit.vcxproj b/src/devkit/RADevKit.vcxproj index e060de4a1..b9d190019 100644 --- a/src/devkit/RADevKit.vcxproj +++ b/src/devkit/RADevKit.vcxproj @@ -69,11 +69,13 @@ + + @@ -96,6 +98,7 @@ + @@ -118,6 +121,8 @@ + + diff --git a/src/devkit/RADevKit.vcxproj.filters b/src/devkit/RADevKit.vcxproj.filters index 5665c789e..c6039c822 100644 --- a/src/devkit/RADevKit.vcxproj.filters +++ b/src/devkit/RADevKit.vcxproj.filters @@ -165,9 +165,20 @@ data\models - - - + + services + + + data + + + data\models + + + data\models + + + @@ -227,7 +238,15 @@ data\models - - + + data + + + data\models + + + data\models + + \ No newline at end of file diff --git a/src/data/models/LocalBadgesModel.cpp b/src/devkit/data/models/LocalBadgesModel.cpp similarity index 96% rename from src/data/models/LocalBadgesModel.cpp rename to src/devkit/data/models/LocalBadgesModel.cpp index 1274cb0b0..273fac861 100644 --- a/src/data/models/LocalBadgesModel.cpp +++ b/src/devkit/data/models/LocalBadgesModel.cpp @@ -1,11 +1,11 @@ #include "LocalBadgesModel.hh" -#include "services\IFileSystem.hh" -#include "services\ServiceLocator.hh" +#include "services/IFileSystem.hh" +#include "services/ServiceLocator.hh" -#include "ui\ImageReference.hh" +#include "ui/IImageRepository.hh" -#include "util\Strings.hh" +#include "util/Strings.hh" namespace ra { namespace data { diff --git a/src/data/models/LocalBadgesModel.hh b/src/devkit/data/models/LocalBadgesModel.hh similarity index 55% rename from src/data/models/LocalBadgesModel.hh rename to src/devkit/data/models/LocalBadgesModel.hh index 0542a3f98..97ab128d4 100644 --- a/src/data/models/LocalBadgesModel.hh +++ b/src/devkit/data/models/LocalBadgesModel.hh @@ -1,5 +1,5 @@ -#ifndef RA_DATA_LOCAL_BADGES_MODEL_H -#define RA_DATA_LOCAL_BADGES_MODEL_H +#ifndef RA_DATA_MODELS_LOCALBADGESMODEL_H +#define RA_DATA_MODELS_LOCALBADGESMODEL_H #pragma once #include "data/models/AssetModelBase.hh" @@ -19,19 +19,41 @@ public: LocalBadgesModel& operator=(LocalBadgesModel&&) noexcept = delete; bool IsShownInList() const noexcept override { return false; } + void Serialize(ra::services::TextWriter&) const noexcept override {} + bool Deserialize(ra::util::Tokenizer&) noexcept override { return true; } + /// + /// Adds a reference to a local badge. + /// + /// The name of the local badge. + /// true if the reference has been committed. + /// An uncommitted reference may be deleted at exit. void AddReference(const std::wstring& sBadgeName, bool bCommitted); - void RemoveReference(const std::wstring& sBadgeName, bool bCommitted); - void Commit(const std::wstring& sPreviousBadgeName, const std::wstring& sNewBadgeName); - bool NeedsSerialized() const noexcept { return false; } - - void Serialize(ra::services::TextWriter&) const noexcept override {} - bool Deserialize(ra::util::Tokenizer&) noexcept override { return true; } + /// + /// Adds a reference to a local badge. + /// + /// The name of the local badge. + /// true if the reference has been committed. + void RemoveReference(const std::wstring& sBadgeName, bool bCommitted); + /// + /// Gets the number of references to a local badge. + /// + /// The name of the local badge. + /// true to look for committed references. int GetReferenceCount(const std::wstring& sBadgeName, bool bCommitted) const; + + /// + /// Deletes any badges not associated to committed assets. + /// void DeleteUncommittedBadges(); + /// + /// Converts an uncommitted badge name to a committed badge name. + /// + void Commit(const std::wstring& sPreviousBadgeName, const std::wstring& sNewBadgeName); + private: struct BadgeReferenceCount { @@ -46,4 +68,4 @@ private: } // namespace data } // namespace ra -#endif RA_DATA_LOCAL_BADGES_MODEL_H +#endif RA_DATA_MODELS_LOCALBADGESMODEL_H diff --git a/src/ui/ImageReference.hh b/src/devkit/ui/IImageRepository.hh similarity index 63% rename from src/ui/ImageReference.hh rename to src/devkit/ui/IImageRepository.hh index cefbfaed4..203ab8175 100644 --- a/src/ui/ImageReference.hh +++ b/src/devkit/ui/IImageRepository.hh @@ -2,27 +2,12 @@ #define RA_UI_IMAGEREPOSITORY_H #pragma once -#include "data\NotifyTargetSet.hh" -#include "services\ServiceLocator.hh" +#include "ImageReference.hh" + +#include "data/NotifyTargetSet.hh" namespace ra { namespace ui { -namespace drawing::gdi { - -class ImageRepository; - -} // namespace drawing::gdi - -enum class ImageType -{ - None, - Badge, - UserPic, - Local, - Icon, -}; - -class ImageReference; class IImageRepository { @@ -113,69 +98,6 @@ private: ra::data::NotifyTargetSet m_vNotifyTargets; }; -class ImageReference -{ -public: - ImageReference() noexcept = default; - ~ImageReference() noexcept - { - if (ra::services::ServiceLocator::Exists()) - Release(); - } - - explicit ImageReference(ImageType nType, const std::string& sName) : m_nType(nType), m_sName(sName) {} - - ImageReference(const ImageReference& source) = default; - ImageReference& operator=(const ImageReference&) noexcept = delete; - ImageReference(ImageReference&& source) noexcept = default; - ImageReference& operator=(ImageReference&& source) noexcept = delete; - - /// - /// Get the image type. - /// - inline constexpr ImageType Type() const noexcept { return m_nType; } - - /// - /// Get the image name. - /// - const std::string& Name() const noexcept { return m_sName; } - - /// - /// Updates the referenced image. - /// - /// Type of the image. - /// Name of the image. - void ChangeReference(ImageType nType, const std::string& sName) - { - if (nType != m_nType || sName != m_sName) - { - Release(); - - m_nType = nType; - m_sName = sName; - } - } - - /// - /// Releases this reference image. - /// - GSL_SUPPRESS_F6 void Release() noexcept - { - if (m_nType != ImageType::None) - { - // Suppress not working inline, but should - GSL_SUPPRESS_F6 auto& pRepository = ra::services::ServiceLocator::GetMutable(); - pRepository.ReleaseReference(*this); - } - } - -private: - ImageType m_nType{}; - std::string m_sName; - mutable unsigned long long m_nData{}; - friend class drawing::gdi::ImageRepository; -}; - } // namespace ui } // namespace ra diff --git a/src/devkit/ui/ImageReference.cpp b/src/devkit/ui/ImageReference.cpp new file mode 100644 index 000000000..f63006234 --- /dev/null +++ b/src/devkit/ui/ImageReference.cpp @@ -0,0 +1,26 @@ +#include "ImageReference.hh" +#include "IImageRepository.hh" + +#include "services/ServiceLocator.hh" + +namespace ra { +namespace ui { + +ImageReference::~ImageReference() noexcept +{ + if (ra::services::ServiceLocator::Exists()) + Release(); +} + +GSL_SUPPRESS_F6 +void ImageReference::Release() noexcept +{ + if (m_nType != ImageType::None) + { + auto& pRepository = ra::services::ServiceLocator::GetMutable(); + pRepository.ReleaseReference(*this); + } +} + +} // namespace ui +} // namespace ra diff --git a/src/devkit/ui/ImageReference.hh b/src/devkit/ui/ImageReference.hh new file mode 100644 index 000000000..c2e66163b --- /dev/null +++ b/src/devkit/ui/ImageReference.hh @@ -0,0 +1,84 @@ +#ifndef RA_UI_IMAGEREFERENCE_H +#define RA_UI_IMAGEREFERENCE_H +#pragma once + +#include + +namespace ra { +namespace ui { + +enum class ImageType +{ + None, + Badge, + UserPic, + Local, + Icon, +}; + +class ImageReference +{ +public: + ImageReference() noexcept = default; + ~ImageReference() noexcept; + + explicit ImageReference(ImageType nType, const std::string& sName) : m_nType(nType), m_sName(sName) {} + + ImageReference(const ImageReference& source) = default; + ImageReference& operator=(const ImageReference&) noexcept = delete; + ImageReference(ImageReference&& source) noexcept = default; + ImageReference& operator=(ImageReference&& source) noexcept = delete; + + /// + /// Get the image type. + /// + inline constexpr ImageType Type() const noexcept { return m_nType; } + + /// + /// Get the image name. + /// + const std::string& Name() const noexcept { return m_sName; } + + /// + /// Updates the referenced image. + /// + /// Type of the image. + /// Name of the image. + void ChangeReference(ImageType nType, const std::string& sName) + { + if (nType != m_nType || sName != m_sName) + { + Release(); + + m_nType = nType; + m_sName = sName; + } + } + + /// + /// Releases this reference image. + /// + void Release() noexcept; + + /// + /// Gets custom data associated with a loaded image (as defined by the IImageRepository implementation). + /// + unsigned long long GetData() const noexcept { return m_nData; } + + /// + /// Sets custom data associated with a loaded image (as defined by the IImageRepository implementation). + /// + /// Allows setting the data on a const ImageReference so the IImageRepository can lazy-load the data. + void SetData(unsigned long long nData) const noexcept { m_nData = nData; } + +private: + ImageType m_nType{}; + std::string m_sName; + + mutable unsigned long long m_nData{}; +}; + +} // namespace ui +} // namespace ra + +#endif /* !RA_UI_IMAGEREFERENCE_H */ diff --git a/src/services/FrameEventQueue.cpp b/src/services/FrameEventQueue.cpp index 3454c013a..55fbd1ea5 100644 --- a/src/services/FrameEventQueue.cpp +++ b/src/services/FrameEventQueue.cpp @@ -1,6 +1,9 @@ #include "FrameEventQueue.hh" #include "RA_Defs.h" + +#include "services\ServiceLocator.hh" + #include "util\Strings.hh" #include "ui\IDesktop.hh" diff --git a/src/ui/drawing/gdi/GDISurface.hh b/src/ui/drawing/gdi/GDISurface.hh index 07035687f..d5a5db75b 100644 --- a/src/ui/drawing/gdi/GDISurface.hh +++ b/src/ui/drawing/gdi/GDISurface.hh @@ -5,6 +5,8 @@ #include "ui\drawing\ISurface.hh" #include "ui\drawing\gdi\ResourceRepository.hh" +#include "util\GSL.hh" + namespace ra { namespace ui { namespace drawing { diff --git a/src/ui/drawing/gdi/ImageRepository.cpp b/src/ui/drawing/gdi/ImageRepository.cpp index 4f286fd9c..1948100d6 100644 --- a/src/ui/drawing/gdi/ImageRepository.cpp +++ b/src/ui/drawing/gdi/ImageRepository.cpp @@ -531,7 +531,7 @@ HBITMAP ImageRepository::GetImage(ImageType nType, const std::string& sName) HBITMAP ImageRepository::GetHBitmap(const ImageReference& pImage) { HBITMAP hBitmap{}; - GSL_SUPPRESS_TYPE1 hBitmap = reinterpret_cast(pImage.m_nData); + GSL_SUPPRESS_TYPE1 hBitmap = reinterpret_cast(pImage.GetData()); if (hBitmap == nullptr) { @@ -542,7 +542,7 @@ HBITMAP ImageRepository::GetHBitmap(const ImageReference& pImage) if (hBitmap == nullptr) return pImageRepository->GetDefaultImage(pImage.Type()); - GSL_SUPPRESS_TYPE1 pImage.m_nData = reinterpret_cast(hBitmap); + GSL_SUPPRESS_TYPE1 pImage.SetData(reinterpret_cast(hBitmap)); // ImageReference will release the reference pImageRepository->AddReference(pImage); @@ -574,7 +574,7 @@ void ImageRepository::AddReference(const ImageReference& pImage) void ImageRepository::ReleaseReference(ImageReference& pImage) noexcept { // if data isn't set, we don't have a reference to release. - if (pImage.m_nData == 0) + if (pImage.GetData() == 0) return; HBitmapMap* mMap = GetBitmapMap(pImage.Type()); @@ -596,7 +596,7 @@ void ImageRepository::ReleaseReference(ImageReference& pImage) noexcept } } - pImage.m_nData = {}; + pImage.SetData(0); } bool ImageRepository::HasReferencedImageChanged(ImageReference& pImage) const @@ -604,9 +604,9 @@ bool ImageRepository::HasReferencedImageChanged(ImageReference& pImage) const if (pImage.Type() == ra::ui::ImageType::None) return false; - const auto hBitmapBefore = pImage.m_nData; + const auto hBitmapBefore = pImage.GetData(); GetHBitmap(pImage); // TBD: Is the return value supposed to be discarded? - return (pImage.m_nData != hBitmapBefore); + return (pImage.GetData() != hBitmapBefore); } GSL_SUPPRESS_F23 diff --git a/src/ui/drawing/gdi/ImageRepository.hh b/src/ui/drawing/gdi/ImageRepository.hh index 627ad763c..f62c23154 100644 --- a/src/ui/drawing/gdi/ImageRepository.hh +++ b/src/ui/drawing/gdi/ImageRepository.hh @@ -2,7 +2,7 @@ #define RA_UI_DRAWING_GDI_IMAGEREPOSITORY_HH #pragma once -#include "ui\ImageReference.hh" +#include "ui\IImageRepository.hh" namespace ra { namespace ui { diff --git a/src/ui/viewmodels/AssetEditorViewModel.cpp b/src/ui/viewmodels/AssetEditorViewModel.cpp index 139cb49b2..62d269d8a 100644 --- a/src/ui/viewmodels/AssetEditorViewModel.cpp +++ b/src/ui/viewmodels/AssetEditorViewModel.cpp @@ -11,6 +11,7 @@ #include "ui\EditorTheme.hh" #include "ui\ImageReference.hh" +#include "ui\IImageRepository.hh" #include "ui\viewmodels\FileDialogViewModel.hh" #include "ui\viewmodels\MessageBoxViewModel.hh" diff --git a/src/ui/viewmodels/AssetUploadViewModel.cpp b/src/ui/viewmodels/AssetUploadViewModel.cpp index ea5b24e04..8074c145c 100644 --- a/src/ui/viewmodels/AssetUploadViewModel.cpp +++ b/src/ui/viewmodels/AssetUploadViewModel.cpp @@ -12,6 +12,7 @@ #include "data\context\GameContext.hh" #include "ui\ImageReference.hh" +#include "ui\IImageRepository.hh" #include "ui\viewmodels\MessageBoxViewModel.hh" #include "RA_Defs.h" diff --git a/src/ui/viewmodels/LoginViewModel.cpp b/src/ui/viewmodels/LoginViewModel.cpp index fe38b73a5..3d9e96304 100644 --- a/src/ui/viewmodels/LoginViewModel.cpp +++ b/src/ui/viewmodels/LoginViewModel.cpp @@ -11,6 +11,7 @@ #include "services\IConfiguration.hh" #include "services\ILoginService.hh" +#include "services\ServiceLocator.hh" #include "ui\viewmodels\MessageBoxViewModel.hh" #include "ui\viewmodels\WindowManager.hh" diff --git a/src/ui/viewmodels/MemoryViewerViewModel.cpp b/src/ui/viewmodels/MemoryViewerViewModel.cpp index eac200914..e894adb3b 100644 --- a/src/ui/viewmodels/MemoryViewerViewModel.cpp +++ b/src/ui/viewmodels/MemoryViewerViewModel.cpp @@ -7,6 +7,8 @@ #include "data\context\EmulatorContext.hh" #include "data\context\GameContext.hh" +#include "services\ServiceLocator.hh" + #include "ui\EditorTheme.hh" #include "ui\viewmodels\WindowManager.hh" diff --git a/src/ui/viewmodels/OverlayFriendsPageViewModel.cpp b/src/ui/viewmodels/OverlayFriendsPageViewModel.cpp index d924a14b7..ee9a37e2a 100644 --- a/src/ui/viewmodels/OverlayFriendsPageViewModel.cpp +++ b/src/ui/viewmodels/OverlayFriendsPageViewModel.cpp @@ -4,7 +4,7 @@ #include "api\FetchUserFriends.hh" -#include "context\UserContext.hh" +#include "ui\IImageRepository.hh" namespace ra { namespace ui { diff --git a/src/ui/viewmodels/OverlayManager.hh b/src/ui/viewmodels/OverlayManager.hh index e46352251..5986185a6 100644 --- a/src/ui/viewmodels/OverlayManager.hh +++ b/src/ui/viewmodels/OverlayManager.hh @@ -13,7 +13,9 @@ #include "data\Types.hh" #include "data\context\GameContext.hh" -#include "ui\ImageReference.hh" +#include "services\ServiceLocator.hh" + +#include "ui\IImageRepository.hh" namespace ra { namespace ui { diff --git a/src/ui/viewmodels/PointerFinderViewModel.cpp b/src/ui/viewmodels/PointerFinderViewModel.cpp index 92b231905..6c6d4efa6 100644 --- a/src/ui/viewmodels/PointerFinderViewModel.cpp +++ b/src/ui/viewmodels/PointerFinderViewModel.cpp @@ -7,6 +7,7 @@ #include "data/context/GameContext.hh" #include "services/IFileSystem.hh" +#include "services/ServiceLocator.hh" #include "ui/viewmodels/FileDialogViewModel.hh" #include "ui/viewmodels/MessageBoxViewModel.hh" diff --git a/src/ui/viewmodels/PopupMessageViewModel.cpp b/src/ui/viewmodels/PopupMessageViewModel.cpp index 57ccec248..0c508be52 100644 --- a/src/ui/viewmodels/PopupMessageViewModel.cpp +++ b/src/ui/viewmodels/PopupMessageViewModel.cpp @@ -1,5 +1,8 @@ #include "PopupMessageViewModel.hh" +#include "services\ServiceLocator.hh" + +#include "ui\IImageRepository.hh" #include "ui\OverlayTheme.hh" namespace ra { diff --git a/src/ui/viewmodels/PopupViewModelBase.cpp b/src/ui/viewmodels/PopupViewModelBase.cpp index 583a661ff..41c6abf7f 100644 --- a/src/ui/viewmodels/PopupViewModelBase.cpp +++ b/src/ui/viewmodels/PopupViewModelBase.cpp @@ -3,6 +3,7 @@ #include "util\TypeCasts.hh" #include "services\IConfiguration.hh" +#include "services\ServiceLocator.hh" #include "ui\OverlayTheme.hh" diff --git a/src/ui/viewmodels/ScoreboardViewModel.cpp b/src/ui/viewmodels/ScoreboardViewModel.cpp index d50c140da..c536298af 100644 --- a/src/ui/viewmodels/ScoreboardViewModel.cpp +++ b/src/ui/viewmodels/ScoreboardViewModel.cpp @@ -1,5 +1,7 @@ #include "ScoreboardViewModel.hh" +#include "services\ServiceLocator.hh" + #include "util\Strings.hh" #include "ui\OverlayTheme.hh" diff --git a/src/ui/win32/bindings/ImageBinding.hh b/src/ui/win32/bindings/ImageBinding.hh index 6cf513537..93a37ff47 100644 --- a/src/ui/win32/bindings/ImageBinding.hh +++ b/src/ui/win32/bindings/ImageBinding.hh @@ -4,7 +4,7 @@ #include "ControlBinding.hh" -#include "ui\ImageReference.hh" +#include "ui\IImageRepository.hh" #include "ui\drawing\gdi\ImageRepository.hh" namespace ra { diff --git a/tests/Exports_Tests.cpp b/tests/Exports_Tests.cpp index 092a56c44..cc89a8eb8 100644 --- a/tests/Exports_Tests.cpp +++ b/tests/Exports_Tests.cpp @@ -10,6 +10,7 @@ #include "tests\devkit\context\mocks\MockUserContext.hh" #include "tests\devkit\services\mocks\MockClock.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockAudioSystem.hh" #include "tests\mocks\MockConfiguration.hh" @@ -17,7 +18,6 @@ #include "tests\mocks\MockEmulatorContext.hh" #include "tests\mocks\MockFrameEventQueue.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockLoginService.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockOverlayTheme.hh" diff --git a/tests/RA_Integration.Tests.vcxproj b/tests/RA_Integration.Tests.vcxproj index 6cb8fafbc..64cc0a999 100644 --- a/tests/RA_Integration.Tests.vcxproj +++ b/tests/RA_Integration.Tests.vcxproj @@ -84,7 +84,6 @@ - @@ -159,7 +158,6 @@ - @@ -229,7 +227,6 @@ - diff --git a/tests/RA_Integration.Tests.vcxproj.filters b/tests/RA_Integration.Tests.vcxproj.filters index 775cb6619..74656eab8 100644 --- a/tests/RA_Integration.Tests.vcxproj.filters +++ b/tests/RA_Integration.Tests.vcxproj.filters @@ -336,12 +336,6 @@ Tests\UI\ViewModels - - Tests\Data\Models - - - Code - Code @@ -494,9 +488,6 @@ Code - - Mocks - Mocks diff --git a/tests/data/context/GameContext_Tests.cpp b/tests/data/context/GameContext_Tests.cpp index 657543638..85aa775d3 100644 --- a/tests/data/context/GameContext_Tests.cpp +++ b/tests/data/context/GameContext_Tests.cpp @@ -24,13 +24,13 @@ #include "tests\devkit\services\mocks\MockMessageDispatcher.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" #include "tests\devkit\testutil\AssetAsserts.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockAudioSystem.hh" #include "tests\mocks\MockEmulatorContext.hh" #include "tests\mocks\MockConfiguration.hh" #include "tests\mocks\MockDesktop.hh" #include "tests\mocks\MockFrameEventQueue.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockServer.hh" #include "tests\mocks\MockSessionTracker.hh" diff --git a/tests/devkit/RADevKit.Tests.vcxproj b/tests/devkit/RADevKit.Tests.vcxproj index 83baa7e67..8a043a869 100644 --- a/tests/devkit/RADevKit.Tests.vcxproj +++ b/tests/devkit/RADevKit.Tests.vcxproj @@ -70,6 +70,7 @@ + @@ -99,6 +100,7 @@ + \ No newline at end of file diff --git a/tests/devkit/RADevKit.Tests.vcxproj.filters b/tests/devkit/RADevKit.Tests.vcxproj.filters index dbc691c60..0085c27a3 100644 --- a/tests/devkit/RADevKit.Tests.vcxproj.filters +++ b/tests/devkit/RADevKit.Tests.vcxproj.filters @@ -61,6 +61,7 @@ data\models + @@ -149,5 +150,6 @@ testutil + \ No newline at end of file diff --git a/tests/data/models/LocalBadgesModel_Tests.cpp b/tests/devkit/data/models/LocalBadgesModel_Tests.cpp similarity index 78% rename from tests/data/models/LocalBadgesModel_Tests.cpp rename to tests/devkit/data/models/LocalBadgesModel_Tests.cpp index 3b0b46f3e..9e4f6a789 100644 --- a/tests/data/models/LocalBadgesModel_Tests.cpp +++ b/tests/devkit/data/models/LocalBadgesModel_Tests.cpp @@ -1,16 +1,12 @@ -#include "CppUnitTest.h" +#include "data/models/LocalBadgesModel.hh" -#include "data\models\LocalBadgesModel.hh" +#include "services/impl/StringTextWriter.hh" +#include "services/mocks/MockFileSystem.hh" -#include "services\impl\StringTextWriter.hh" +#include "testutil/AssetAsserts.hh" +#include "testutil/CppUnitTest.hh" -#include "tests\RA_UnitTestHelpers.h" -#include "tests\data\DataAsserts.hh" - -#include "tests\devkit\services\mocks\MockFileSystem.hh" -#include "tests\devkit\testutil\AssetAsserts.hh" -#include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" +#include "ui/mocks/MockImageRepository.hh" using namespace Microsoft::VisualStudio::CppUnitTestFramework; @@ -27,7 +23,6 @@ TEST_CLASS(LocalBadgesModel_Tests) public: ra::services::impl::StringTextWriter textWriter; - ra::data::context::mocks::MockGameContext mockGameContext; ra::services::mocks::MockFileSystem mockFileSystem; ra::ui::mocks::MockImageRepository mockImageRepository; }; @@ -44,13 +39,11 @@ TEST_CLASS(LocalBadgesModel_Tests) Assert::AreEqual(AssetCategory::Local, badges.GetCategory()); Assert::AreEqual(AssetState::Inactive, badges.GetState()); Assert::AreEqual(AssetChanges::None, badges.GetChanges()); - Assert::IsFalse(badges.NeedsSerialized()); } TEST_METHOD(TestDeleteUncommittedBadges) { LocalBadgesModelHarness badges; - badges.mockGameContext.SetGameId(123U); badges.mockFileSystem.MockFileSize(L"local\\123-A.png", 1234); badges.AddReference(L"local\\123-A.png", true); badges.mockFileSystem.MockFileSize(L"local\\123-B.png", 2345); diff --git a/tests/mocks/MockImageRepository.hh b/tests/devkit/ui/mocks/MockImageRepository.hh similarity index 93% rename from tests/mocks/MockImageRepository.hh rename to tests/devkit/ui/mocks/MockImageRepository.hh index 6f759b20d..1d73bf7b3 100644 --- a/tests/mocks/MockImageRepository.hh +++ b/tests/devkit/ui/mocks/MockImageRepository.hh @@ -2,9 +2,15 @@ #define RA_UI_MOCK_IMAGEREPOSITORY_HH #pragma once -#include "ui\ImageReference.hh" +#include "services/ServiceLocator.hh" -#include "util\Strings.hh" +#include "ui/IImageRepository.hh" + +#include "util/Strings.hh" + +#include +#include +#include namespace ra { namespace ui { diff --git a/tests/services/AchievementRuntime_Tests.cpp b/tests/services/AchievementRuntime_Tests.cpp index c2f96eaad..0a8c9ceba 100644 --- a/tests/services/AchievementRuntime_Tests.cpp +++ b/tests/services/AchievementRuntime_Tests.cpp @@ -11,6 +11,7 @@ #include "tests\devkit\services\mocks\MockLocalStorage.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" #include "tests\devkit\testutil\AssetAsserts.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAudioSystem.hh" #include "tests\mocks\MockConfiguration.hh" #include "tests\mocks\MockDesktop.hh" @@ -18,7 +19,6 @@ #include "tests\mocks\MockFrameEventQueue.hh" #include "tests\mocks\MockGameContext.hh" #include "tests\mocks\MockGameIdentifier.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockLoginService.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockOverlayTheme.hh" diff --git a/tests/ui/viewmodels/AssetEditorViewModel_Tests.cpp b/tests/ui/viewmodels/AssetEditorViewModel_Tests.cpp index 96663dca2..683789741 100644 --- a/tests/ui/viewmodels/AssetEditorViewModel_Tests.cpp +++ b/tests/ui/viewmodels/AssetEditorViewModel_Tests.cpp @@ -19,13 +19,13 @@ #include "tests\devkit\testutil\AssetAsserts.hh" #include "tests\devkit\testutil\MemoryAsserts.hh" #include "tests\devkit\testutil\ValueAsserts.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockClipboard.hh" #include "tests\mocks\MockConfiguration.hh" #include "tests\mocks\MockDesktop.hh" #include "tests\mocks\MockEmulatorContext.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockWindowManager.hh" diff --git a/tests/ui/viewmodels/AssetListViewModel_Tests.cpp b/tests/ui/viewmodels/AssetListViewModel_Tests.cpp index fd62350d2..ff5622d82 100644 --- a/tests/ui/viewmodels/AssetListViewModel_Tests.cpp +++ b/tests/ui/viewmodels/AssetListViewModel_Tests.cpp @@ -23,12 +23,12 @@ #include "tests\devkit\services\mocks\MockThreadPool.hh" #include "tests\devkit\testutil\AssetAsserts.hh" #include "tests\devkit\testutil\ValueAsserts.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockConfiguration.hh" #include "tests\mocks\MockDesktop.hh" #include "tests\mocks\MockEmulatorContext.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockOverlayTheme.hh" #include "tests\mocks\MockSurface.hh" diff --git a/tests/ui/viewmodels/AssetUploadViewModel_Tests.cpp b/tests/ui/viewmodels/AssetUploadViewModel_Tests.cpp index ad0f1b458..2d823c13c 100644 --- a/tests/ui/viewmodels/AssetUploadViewModel_Tests.cpp +++ b/tests/ui/viewmodels/AssetUploadViewModel_Tests.cpp @@ -15,10 +15,10 @@ #include "tests\devkit\services\mocks\MockThreadPool.hh" #include "tests\devkit\testutil\AssetAsserts.hh" #include "tests\devkit\testutil\ValueAsserts.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockDesktop.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockServer.hh" using namespace Microsoft::VisualStudio::CppUnitTestFramework; diff --git a/tests/ui/viewmodels/OverlayAchievementsPageViewModel_Tests.cpp b/tests/ui/viewmodels/OverlayAchievementsPageViewModel_Tests.cpp index 566ae65c5..44144de3b 100644 --- a/tests/ui/viewmodels/OverlayAchievementsPageViewModel_Tests.cpp +++ b/tests/ui/viewmodels/OverlayAchievementsPageViewModel_Tests.cpp @@ -6,9 +6,9 @@ #include "tests\devkit\context\mocks\MockUserContext.hh" #include "tests\devkit\services\mocks\MockClock.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockOverlayTheme.hh" #include "tests\mocks\MockServer.hh" diff --git a/tests/ui/viewmodels/OverlayFriendsPageViewModel_Tests.cpp b/tests/ui/viewmodels/OverlayFriendsPageViewModel_Tests.cpp index ff18494e5..4f479ded5 100644 --- a/tests/ui/viewmodels/OverlayFriendsPageViewModel_Tests.cpp +++ b/tests/ui/viewmodels/OverlayFriendsPageViewModel_Tests.cpp @@ -4,7 +4,7 @@ #include "tests\devkit\services\mocks\MockClock.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" -#include "tests\mocks\MockImageRepository.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockServer.hh" #include "tests\RA_UnitTestHelpers.h" diff --git a/tests/ui/viewmodels/OverlayLeaderboardsPageViewModel_Tests.cpp b/tests/ui/viewmodels/OverlayLeaderboardsPageViewModel_Tests.cpp index ddb5ae26d..b74e711a0 100644 --- a/tests/ui/viewmodels/OverlayLeaderboardsPageViewModel_Tests.cpp +++ b/tests/ui/viewmodels/OverlayLeaderboardsPageViewModel_Tests.cpp @@ -5,9 +5,9 @@ #include "tests\devkit\context\mocks\MockRcClient.hh" #include "tests\devkit\context\mocks\MockUserContext.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockServer.hh" #include "tests\mocks\MockWindowManager.hh" diff --git a/tests/ui/viewmodels/OverlayListPageViewModel_Tests.cpp b/tests/ui/viewmodels/OverlayListPageViewModel_Tests.cpp index 3931c952c..c3dee8ca8 100644 --- a/tests/ui/viewmodels/OverlayListPageViewModel_Tests.cpp +++ b/tests/ui/viewmodels/OverlayListPageViewModel_Tests.cpp @@ -2,7 +2,7 @@ #include "ui\viewmodels\OverlayListPageViewModel.hh" -#include "tests\mocks\MockImageRepository.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\RA_UnitTestHelpers.h" diff --git a/tests/ui/viewmodels/OverlayManager_Tests.cpp b/tests/ui/viewmodels/OverlayManager_Tests.cpp index 9fa50dff1..a6ebfdc2d 100644 --- a/tests/ui/viewmodels/OverlayManager_Tests.cpp +++ b/tests/ui/viewmodels/OverlayManager_Tests.cpp @@ -8,12 +8,12 @@ #include "tests\devkit\context\mocks\MockUserContext.hh" #include "tests\devkit\services\mocks\MockClock.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockConfiguration.hh" #include "tests\mocks\MockDesktop.hh" #include "tests\mocks\MockEmulatorContext.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayTheme.hh" #include "tests\mocks\MockSurface.hh" #include "tests\mocks\MockWindowManager.hh" diff --git a/tests/ui/viewmodels/OverlayRecentGamesPageViewModel_Tests.cpp b/tests/ui/viewmodels/OverlayRecentGamesPageViewModel_Tests.cpp index 89c69e9d1..6970a9759 100644 --- a/tests/ui/viewmodels/OverlayRecentGamesPageViewModel_Tests.cpp +++ b/tests/ui/viewmodels/OverlayRecentGamesPageViewModel_Tests.cpp @@ -7,10 +7,10 @@ #include "tests\devkit\services\mocks\MockHttpRequester.hh" #include "tests\devkit\services\mocks\MockLocalStorage.hh" #include "tests\devkit\services\mocks\MockThreadPool.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockAchievementRuntime.hh" #include "tests\mocks\MockConfiguration.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockOverlayManager.hh" #include "tests\mocks\MockServer.hh" #include "tests\mocks\MockSessionTracker.hh" diff --git a/tests/ui/viewmodels/TriggerViewModel_Tests.cpp b/tests/ui/viewmodels/TriggerViewModel_Tests.cpp index d7d5b78e5..d21615dd3 100644 --- a/tests/ui/viewmodels/TriggerViewModel_Tests.cpp +++ b/tests/ui/viewmodels/TriggerViewModel_Tests.cpp @@ -6,11 +6,11 @@ #include "tests\devkit\context\mocks\MockConsoleContext.hh" #include "tests\devkit\context\mocks\MockEmulatorMemoryContext.hh" #include "tests\devkit\context\mocks\MockUserContext.hh" +#include "tests\devkit\ui\mocks\MockImageRepository.hh" #include "tests\mocks\MockClipboard.hh" #include "tests\mocks\MockConfiguration.hh" #include "tests\mocks\MockDesktop.hh" #include "tests\mocks\MockGameContext.hh" -#include "tests\mocks\MockImageRepository.hh" #include "tests\mocks\MockWindowManager.hh" using namespace Microsoft::VisualStudio::CppUnitTestFramework;