SectionPairDocumentProvider.cpp 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * Author: Patrick-Christopher Mattulat
  3. * Company: Lynar Studios
  4. * E-Mail: webmaster@lynarstudios.com
  5. * Created: 2023-02-16
  6. * Changed: 2023-02-16
  7. *
  8. * */
  9. #include "SectionPairDocumentProvider.hpp"
  10. #include <classes/io/section-pair/SectionPairSectionProvider.hpp>
  11. #include <ls-std/ls-std-io.hpp>
  12. test::io::SectionPairDocumentProvider::SectionPairDocumentProvider() = default;
  13. test::io::SectionPairDocumentProvider::~SectionPairDocumentProvider() = default;
  14. ::std::shared_ptr<ls::std::io::SectionPairDocument> test::io::SectionPairDocumentProvider::createDocument()
  15. {
  16. ::std::shared_ptr<ls::std::io::SectionPairDocument> document = ::std::make_shared<ls::std::io::SectionPairDocument>();
  17. // general section
  18. ::std::shared_ptr<ls::std::io::SectionPairSection> generalSection = test::io::SectionPairSectionProvider::createSectionWithSandraExample();
  19. document->add(generalSection);
  20. // physical
  21. ::std::shared_ptr<ls::std::io::SectionPairSection> physicalSection = ::std::make_shared<ls::std::io::SectionPairSection>("physical");
  22. ::std::shared_ptr<ls::std::io::SectionPairRow> eyeColor = ::std::make_shared<ls::std::io::SectionPairRow>("eye-color", ls::std::io::SectionPairRowEnumType::SECTION_PAIR_ROW_SINGLE_VALUE);
  23. ::std::dynamic_pointer_cast<ls::std::io::SectionPairRowSingleValue>(eyeColor->getValue())->set("blue");
  24. physicalSection->add(eyeColor);
  25. ::std::shared_ptr<ls::std::io::SectionPairRow> hairColor = ::std::make_shared<ls::std::io::SectionPairRow>("hair-color", ls::std::io::SectionPairRowEnumType::SECTION_PAIR_ROW_SINGLE_VALUE);
  26. ::std::dynamic_pointer_cast<ls::std::io::SectionPairRowSingleValue>(hairColor->getValue())->set("red");
  27. physicalSection->add(hairColor);
  28. ::std::shared_ptr<ls::std::io::SectionPairRow> height = ::std::make_shared<ls::std::io::SectionPairRow>("height", ls::std::io::SectionPairRowEnumType::SECTION_PAIR_ROW_SINGLE_VALUE);
  29. ::std::dynamic_pointer_cast<ls::std::io::SectionPairRowSingleValue>(height->getValue())->set("167");
  30. physicalSection->add(height);
  31. document->add(physicalSection);
  32. return document;
  33. }
  34. ls::std::core::type::byte_field test::io::SectionPairDocumentProvider::createSerializedDocument()
  35. {
  36. ls::std::core::type::byte_field serializedDocument{};
  37. ::std::string newLine = ls::std::io::NewLine::get();
  38. // general section
  39. serializedDocument += test::io::SectionPairSectionProvider::createSerializedSectionWithSandraExample();
  40. // physical
  41. serializedDocument += newLine + "[physical]" + newLine + newLine;
  42. serializedDocument += "eye-color=blue" + newLine;
  43. serializedDocument += "hair-color=red" + newLine;
  44. serializedDocument += "height=167" + newLine;
  45. return serializedDocument;
  46. }