ScriptCanvasUnitTest_Node.cpp 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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 <Tests/Framework/ScriptCanvasUnitTestFixture.h>
  9. #include <Tests/Mocks/RuntimeRequestsMock.h>
  10. #include <ScriptCanvas/Core/Node.h>
  11. namespace ScriptCanvasUnitTest
  12. {
  13. using namespace ScriptCanvas;
  14. namespace NodeUnitTestStructures
  15. {
  16. class TestNode : public Node
  17. {
  18. public:
  19. void SetupMocks(RuntimeRequestsMock* runtimeRequestsMock)
  20. {
  21. SetRuntimeBus(runtimeRequestsMock);
  22. }
  23. };
  24. };
  25. class ScriptCanvasNodeUnitTestFixture
  26. : public ScriptCanvasUnitTestFixture
  27. {
  28. protected:
  29. NodeUnitTestStructures::TestNode* m_testNode;
  30. RuntimeRequestsMock* m_runtimeRequestsMock;
  31. void SetUp() override
  32. {
  33. ScriptCanvasUnitTestFixture::SetUp();
  34. m_testNode = new NodeUnitTestStructures::TestNode();
  35. m_runtimeRequestsMock = new RuntimeRequestsMock();
  36. m_testNode->SetupMocks(m_runtimeRequestsMock);
  37. };
  38. void TearDown() override
  39. {
  40. delete m_runtimeRequestsMock;
  41. delete m_testNode;
  42. ScriptCanvasUnitTestFixture::TearDown();
  43. };
  44. };
  45. TEST_F(ScriptCanvasNodeUnitTestFixture, GetConnectedNodes_NodeIsEnabled_ReturnExpectedNodeWithSlot)
  46. {
  47. using ::testing::_;
  48. using ::testing::Return;
  49. AZStd::unordered_multimap<Endpoint, Endpoint> testEndpointMap;
  50. Endpoint expectEndpointOut;
  51. testEndpointMap.emplace(Endpoint(), expectEndpointOut);
  52. EXPECT_CALL(*m_runtimeRequestsMock, GetConnectedEndpointIterators(_)).Times(1).WillOnce(Return(testEndpointMap.equal_range(Endpoint())));
  53. Node expectNode;
  54. expectNode.SetId(1);
  55. EXPECT_CALL(*m_runtimeRequestsMock, FindNode(_)).Times(1).WillOnce(Return(&expectNode));
  56. EndpointsResolved actualNodes = m_testNode->GetConnectedNodes(Slot());
  57. EXPECT_TRUE(actualNodes.size() == 1);
  58. EXPECT_TRUE(actualNodes[0].first == &expectNode);
  59. EXPECT_TRUE(actualNodes[0].second == expectNode.GetSlot(expectEndpointOut.GetSlotId()));
  60. }
  61. TEST_F(ScriptCanvasNodeUnitTestFixture, GetConnectedNodes_NodeIsDisabled_ReturnEmpty)
  62. {
  63. using ::testing::_;
  64. using ::testing::Return;
  65. AZStd::unordered_multimap<Endpoint, Endpoint> testEndpointMap;
  66. testEndpointMap.emplace(Endpoint(), Endpoint());
  67. EXPECT_CALL(*m_runtimeRequestsMock, GetConnectedEndpointIterators(_)).Times(1).WillOnce(Return(testEndpointMap.equal_range(Endpoint())));
  68. Node expectNode;
  69. expectNode.SetNodeEnabled(false);
  70. EXPECT_CALL(*m_runtimeRequestsMock, FindNode(_)).Times(1).WillOnce(Return(&expectNode));
  71. EndpointsResolved actualNodes = m_testNode->GetConnectedNodes(Slot());
  72. EXPECT_TRUE(actualNodes.size() == 0);
  73. }
  74. }