Only some of my void functions got these errors.
first one
[Test]
public void ZipFiles_SomeFilesRegistered_ZipFilesMoveToOutputDirAndDeleteSources()
{
string outputPath = "d:\temp\myoutput.zip";
FileManager fileManager = new FileManager();
using (RecordExpectations rec = RecorderManager.StartRecording())
{
rec.DefaultBehavior.CheckArguments();
FileRoutines.FileExists("file1");
rec.Return(true);
FileRoutines.FileExists("file2");
rec.Return(true);
ZipFile zipFile = ZipFile.Create("myoutput.zip");
zipFile.BeginUpdate();
/*TypeMock.TypeMockException:
*** Can not mock chained statements with 'struct' objects. ZipFile.BeginUpdate() returns System.Void
в TypeMock.MockManager.a(String A_0, String A_1, Object A_2, Object A_3, Boolean A_4, Object[] A_5)
в TypeMock.InternalMockManager.getReturn(Object that, String typeName, String methodName, Object methodParameters, Boolean isInjected, Object p1)
в ICSharpCode.SharpZipLib.Zip.ZipFile.Add(String fileName)
в BiK.UnitTests.FileManagerTests.ZipFiles_SomeFilesRegistered_ZipFilesMoveToOutputDirAndDeleteSources() в D:workik
*/
zipFile.Add("file1");
zipFile.Add("file2");
zipFile.CommitUpdate();
zipFile.Close();
zipFile.TestArchive(true);
rec.Return(true);
FileRoutines.MoveFileTo("myoutput.zip", "d:\temp");
rec.Return(outputPath);
FileRoutines.Delete("file1");
FileRoutines.Delete("file2");
}
fileManager.Register("file1");
fileManager.Register("file2");
fileManager.ZipFilesTo(outputPath);
}
Mocking External zip library.
The second:
[Test]
public void GetObjectId_EntityAndDbNameAreInDb_ReturnsPropId()
{
ObjectsBc manager = new ObjectsBc();
InvBaseEntity entity = InvBaseEntity.Create("Жилое здание", 100);
SqlParameter param = new SqlParameter("param1", "value");
using (RecordExpectations rec = RecorderManager.StartRecording())
{
SqlExecuter executer = SqlExecuter.CreateSPCommand("GetObjectId");
rec.CheckArguments();
executer.AddParameter(param);
//same error
// code is command.Parameters.Add(param);
executer.AddParameter(param);
executer.ExecuteScalar();
rec.Return(50);
executer.Dispose();
}
Assert.AreEqual(50, manager.GetObjectId(entity, "Балтийск"));
}
here I just made my void AddParam(SqlParameter func); to return 0; and added rec.Return(0) to fix this problem.