3
0

MetricsEventBuilderTest.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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/UnitTest/TestTypes.h>
  9. #include <MetricsEventBuilder.h>
  10. #include <MetricsEvent.h>
  11. namespace AWSMetrics
  12. {
  13. class MetricsEventBuilderTest
  14. : public UnitTest::LeakDetectionFixture
  15. {
  16. public:
  17. //! Default attributes include client id, timestamp, event id and event source.
  18. const int NumDefaultMetrics = 4;
  19. const int NumProvidedMetrics = 10;
  20. const AZStd::string AttrName = "name";
  21. const AZStd::string AttrValue = "value";
  22. const AZStd::string FakeClientId = "fakeClientId";
  23. void SetUp() override
  24. {
  25. UnitTest::LeakDetectionFixture::SetUp();
  26. m_metricsEventBuilder = AZStd::make_unique<MetricsEventBuilder>();
  27. }
  28. void TearDown() override
  29. {
  30. m_metricsEventBuilder.reset();
  31. UnitTest::LeakDetectionFixture::TearDown();
  32. }
  33. AZStd::unique_ptr<MetricsEventBuilder> m_metricsEventBuilder;
  34. };
  35. TEST_F(MetricsEventBuilderTest, BuildMetricsEvent_DefaultAttributes_Success)
  36. {
  37. MetricsEvent metricsEvent = m_metricsEventBuilder->AddDefaultMetricsAttributes(FakeClientId).Build();
  38. ASSERT_EQ(metricsEvent.GetNumAttributes(), NumDefaultMetrics);
  39. }
  40. TEST_F(MetricsEventBuilderTest, BuildMetricsEvent_ProvidedAttributes_Success)
  41. {
  42. AZStd::vector<MetricsAttribute> metricsAttributes;
  43. for (int index = 0; index < NumProvidedMetrics; ++index)
  44. {
  45. metricsAttributes.emplace_back(MetricsAttribute(AZStd::string::format("%s%i", AttrName.c_str(), index), AttrValue));
  46. }
  47. MetricsEvent metricsEvent = m_metricsEventBuilder->AddMetricsAttributes(metricsAttributes).Build();
  48. // Timestamp attribute will be added during creation automatically.
  49. ASSERT_EQ(metricsEvent.GetNumAttributes(), NumProvidedMetrics + 1);
  50. }
  51. TEST_F(MetricsEventBuilderTest, BuildMetricsEvent_SetMetricsPriority_Success)
  52. {
  53. MetricsEvent metricsEvent = m_metricsEventBuilder->SetMetricsPriority(0).Build();
  54. ASSERT_EQ(metricsEvent.GetEventPriority(), 0);
  55. }
  56. }