Index: src/libchcore/Tests/OverlappedCallbacksTests.cpp =================================================================== diff -u -N -r3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9 -r6e4ac7776b68464371cd8522a2a8d79fbcab3b28 --- src/libchcore/Tests/OverlappedCallbacksTests.cpp (.../OverlappedCallbacksTests.cpp) (revision 3ccbdb8d3eac3427e6d3354854476e57fdc7ceb9) +++ src/libchcore/Tests/OverlappedCallbacksTests.cpp (.../OverlappedCallbacksTests.cpp) (revision 6e4ac7776b68464371cd8522a2a8d79fbcab3b28) @@ -1,11 +1,71 @@ -#include "stdafx.h" -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "../OverlappedCallbacks.h" - -using namespace chcore; - -TEST(OverlappedCallbackTests, DefaultTest) -{ - -} +#include "stdafx.h" +#include "gtest/gtest.h" +#include "gmock/gmock.h" +#include "../OverlappedCallbacks.h" +#include "../TOverlappedMemoryPool.h" +#include "../../liblogger/TLogFileData.h" +#include "../TOverlappedReaderWriter.h" + +using namespace chcore; + +TEST(OverlappedCallbackTests, OverlappedReadCompleted_Success) +{ + logger::TLogFileDataPtr spLogData(std::make_shared()); + + TOverlappedMemoryPoolPtr spBuffers(std::make_shared()); + TOverlappedReaderWriter queue(spLogData, spBuffers, 0, 4096); + TOverlappedDataBuffer buffer(16384, &queue); + + buffer.InitForRead(0, 1024); + buffer.SetStatusCode(0); + buffer.SetBytesTransferred(234); + + OverlappedReadCompleted(ERROR_SUCCESS, 234, &buffer); + + EXPECT_TRUE(buffer.IsLastPart()); + EXPECT_EQ(ERROR_SUCCESS, buffer.GetErrorCode()); + EXPECT_EQ(234, buffer.GetRealDataSize()); + + EXPECT_EQ(queue.GetWriteBuffer(), &buffer); +} + +TEST(OverlappedCallbackTests, OverlappedReadCompleted_Failure) +{ + logger::TLogFileDataPtr spLogData(std::make_shared()); + + TOverlappedMemoryPoolPtr spBuffers(std::make_shared()); + TOverlappedReaderWriter queue(spLogData, spBuffers, 0, 4096); + TOverlappedDataBuffer buffer(16384, &queue); + + buffer.InitForRead(0, 1024); + buffer.SetStatusCode(0); + buffer.SetBytesTransferred(0); + + OverlappedReadCompleted(ERROR_ACCESS_DENIED, 0, &buffer); + + EXPECT_FALSE(buffer.IsLastPart()); + EXPECT_EQ(ERROR_ACCESS_DENIED, buffer.GetErrorCode()); + EXPECT_EQ(0, buffer.GetRealDataSize()); + + EXPECT_EQ(queue.GetWriteBuffer(), &buffer); +} + +TEST(OverlappedCallbackTests, OverlappedWriteCompleted_Success) +{ + logger::TLogFileDataPtr spLogData(std::make_shared()); + + TOverlappedMemoryPoolPtr spBuffers(std::make_shared()); + TOverlappedReaderWriter queue(spLogData, spBuffers, 0, 4096); + TOverlappedDataBuffer buffer(16384, &queue); + + buffer.InitForRead(0, 1024); + buffer.SetStatusCode(0); + buffer.SetBytesTransferred(234); + buffer.SetLastPart(true); + buffer.SetRealDataSize(234); + + OverlappedWriteCompleted(ERROR_SUCCESS, 234, &buffer); + + EXPECT_EQ(ERROR_SUCCESS, buffer.GetErrorCode()); + EXPECT_EQ(queue.GetFinishedWriteBuffer(), &buffer); +}