3
0

ScriptCanvasAutoGenRegistryTest.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <AzCore/RTTI/ReflectContext.h>
  9. #include <AutoGen/ScriptCanvasAutoGenRegistry.h>
  10. #include <Tests/Framework/ScriptCanvasUnitTestFixture.h>
  11. namespace ScriptCanvasUnitTest
  12. {
  13. using ScriptCanvasAutoGenRegistry = ScriptCanvasUnitTestFixture;
  14. class MockRegistry
  15. : public ScriptCanvas::ScriptCanvasRegistry
  16. {
  17. public:
  18. MockRegistry() = default;
  19. virtual ~MockRegistry() = default;
  20. MOCK_METHOD1(Init, void(ScriptCanvas::NodeRegistry*));
  21. MOCK_METHOD1(Reflect, void(AZ::ReflectContext*));
  22. MOCK_METHOD0(GetComponentDescriptors, AZStd::vector<AZ::ComponentDescriptor*>());
  23. };
  24. TEST_F(ScriptCanvasAutoGenRegistry, GetInstance_Call_ExpectToBeValid)
  25. {
  26. auto autogenRegistry = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  27. EXPECT_TRUE(autogenRegistry);
  28. }
  29. TEST_F(ScriptCanvasAutoGenRegistry, GetInstance_Call_ExpectToBeConsistent)
  30. {
  31. auto autogenRegistry1 = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  32. auto autogenRegistry2 = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  33. EXPECT_EQ(autogenRegistry1, autogenRegistry2);
  34. }
  35. TEST_F(ScriptCanvasAutoGenRegistry, Init_CallWithCorrectName_ExpectToBeCalledOnce)
  36. {
  37. auto autogenRegistry = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  38. MockRegistry mockRegistry;
  39. autogenRegistry->RegisterRegistry("MockFunctionRegistry", &mockRegistry);
  40. EXPECT_CALL(mockRegistry, Init(::testing::_)).Times(1);
  41. ScriptCanvas::AutoGenRegistryManager::Init("Mock");
  42. autogenRegistry->UnregisterRegistry("MockFunctionRegistry");
  43. }
  44. TEST_F(ScriptCanvasAutoGenRegistry, Init_CallWithIncorrectName_ExpectNotToBeCalled)
  45. {
  46. auto autogenRegistry = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  47. MockRegistry mockRegistry;
  48. autogenRegistry->RegisterRegistry("MockFunctionRegistry", &mockRegistry);
  49. EXPECT_CALL(mockRegistry, Init(::testing::_)).Times(0);
  50. ScriptCanvas::AutoGenRegistryManager::Init("Test");
  51. autogenRegistry->UnregisterRegistry("MockFunctionRegistry");
  52. }
  53. TEST_F(ScriptCanvasAutoGenRegistry, Reflect_CallWithCorrectName_ExpectToBeCalledOnce)
  54. {
  55. auto autogenRegistry = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  56. MockRegistry mockRegistry;
  57. autogenRegistry->RegisterRegistry("MockFunctionRegistry", &mockRegistry);
  58. AZ::ReflectContext reflectContext;
  59. EXPECT_CALL(mockRegistry, Reflect(::testing::_)).Times(1);
  60. ScriptCanvas::AutoGenRegistryManager::Reflect(&reflectContext, "Mock");
  61. autogenRegistry->UnregisterRegistry("MockFunctionRegistry");
  62. }
  63. TEST_F(ScriptCanvasAutoGenRegistry, Reflect_CallWithIncorrectName_ExpectNotToBeCalled)
  64. {
  65. auto autogenRegistry = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  66. MockRegistry mockRegistry;
  67. autogenRegistry->RegisterRegistry("MockFunctionRegistry", &mockRegistry);
  68. AZ::ReflectContext reflectContext;
  69. EXPECT_CALL(mockRegistry, Reflect(::testing::_)).Times(0);
  70. ScriptCanvas::AutoGenRegistryManager::Reflect(&reflectContext, "Test");
  71. autogenRegistry->UnregisterRegistry("MockFunctionRegistry");
  72. }
  73. TEST_F(ScriptCanvasAutoGenRegistry, GetComponentDescriptors_CallWithCorrectName_ExpectToBeCalledOnce)
  74. {
  75. auto autogenRegistry = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  76. MockRegistry mockRegistry;
  77. autogenRegistry->RegisterRegistry("MockFunctionRegistry", &mockRegistry);
  78. EXPECT_CALL(mockRegistry, GetComponentDescriptors()).Times(1).WillOnce(testing::Return(AZStd::vector<AZ::ComponentDescriptor*>{nullptr}));
  79. auto actualResult = ScriptCanvas::AutoGenRegistryManager::GetComponentDescriptors("Mock");
  80. EXPECT_TRUE(actualResult.size() == 1);
  81. autogenRegistry->UnregisterRegistry("MockFunctionRegistry");
  82. }
  83. TEST_F(ScriptCanvasAutoGenRegistry, GetComponentDescriptors_CallWithIncorrectName_ExpectNotToBeCalled)
  84. {
  85. auto autogenRegistry = ScriptCanvas::AutoGenRegistryManager::GetInstance();
  86. MockRegistry mockRegistry;
  87. autogenRegistry->RegisterRegistry("MockFunctionRegistry", &mockRegistry);
  88. EXPECT_CALL(mockRegistry, GetComponentDescriptors()).Times(0);
  89. auto actualResult = ScriptCanvas::AutoGenRegistryManager::GetComponentDescriptors("Test");
  90. EXPECT_TRUE(actualResult.size() == 0);
  91. autogenRegistry->UnregisterRegistry("MockFunctionRegistry");
  92. }
  93. } // namespace ScriptCanvasUnitTest