File: integration.cpp

package info (click to toggle)
openmw 0.50.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,076 kB
  • sloc: cpp: 380,958; xml: 2,192; sh: 1,449; python: 911; makefile: 26; javascript: 5
file content (56 lines) | stat: -rw-r--r-- 2,196 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "format.hpp"

#include <components/serialization/binaryreader.hpp>
#include <components/serialization/binarywriter.hpp>
#include <components/serialization/sizeaccumulator.hpp>

#include <gmock/gmock.h>
#include <gtest/gtest.h>

#include <vector>

namespace
{
    using namespace testing;
    using namespace Serialization;
    using namespace SerializationTesting;

    struct DetourNavigatorSerializationIntegrationTest : Test
    {
        Composite mComposite;

        DetourNavigatorSerializationIntegrationTest()
        {
            mComposite.mIntVector = { 4, 5, 6 };
            mComposite.mEnumVector = { Enum::A, Enum::B, Enum::C };
            mComposite.mPodVector = { Pod{ 4, 23.87 }, Pod{ 5, -31.76 }, Pod{ 6, 65.12 } };
            mComposite.mPodBuffer = { Pod{ 7, 456.123 }, Pod{ 8, -628.346 } };
            mComposite.mPodDataSize = mComposite.mPodBuffer.size();
            std::string charData = "serialization";
            mComposite.mCharBuffer = { charData.begin(), charData.end() };
            mComposite.mCharDataSize = charData.size();
        }
    };

    TEST_F(DetourNavigatorSerializationIntegrationTest, sizeAccumulatorShouldSupportCustomSerializer)
    {
        SizeAccumulator sizeAccumulator;
        TestFormat<Mode::Write>{}(sizeAccumulator, mComposite);
        EXPECT_EQ(sizeAccumulator.value(), 143);
    }

    TEST_F(DetourNavigatorSerializationIntegrationTest, binaryReaderShouldDeserializeDataWrittenByBinaryWriter)
    {
        std::vector<std::byte> data(143);
        TestFormat<Mode::Write>{}(BinaryWriter(data.data(), data.data() + data.size()), mComposite);
        Composite result;
        TestFormat<Mode::Read>{}(BinaryReader(data.data(), data.data() + data.size()), result);
        EXPECT_EQ(result.mIntVector, mComposite.mIntVector);
        EXPECT_EQ(result.mEnumVector, mComposite.mEnumVector);
        EXPECT_EQ(result.mPodVector, mComposite.mPodVector);
        EXPECT_EQ(result.mPodDataSize, mComposite.mPodDataSize);
        EXPECT_EQ(result.mPodBuffer, mComposite.mPodBuffer);
        EXPECT_EQ(result.mCharDataSize, mComposite.mCharDataSize);
        EXPECT_EQ(result.mCharBuffer, mComposite.mCharBuffer);
    }
}