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