This repository has been archived on 2023-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
cad/ref/xcad/tests/SolidWorks.Tests/SwAddInExTest.cs
2022-10-15 19:16:08 +02:00

91 lines
2.9 KiB
C#

//*********************************************************************
//xCAD
//Copyright(C) 2020 Xarial Pty Limited
//Product URL: https://www.xcad.net
//License: https://xcad.xarial.com/license/
//*********************************************************************
using Moq;
using NUnit.Framework;
using SolidWorks.Interop.sldworks;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xarial.XCad.SolidWorks;
namespace SolidWorks.Tests
{
public class SwAddInExTest
{
[Test]
public void TestConnectToSW()
{
var addInExMock1 = new Mock<SwAddInEx>();
bool connectCalled = false;
addInExMock1.Setup(a => a.OnConnect()).Callback(
() =>
{
connectCalled = true;
});
var addInExMock2 = new Mock<SwAddInEx>();
addInExMock2.Setup(a => a.OnConnect())
.Callback(() => throw new Exception());
var addInExMock3 = new Mock<SwAddInEx>() { CallBase = true };
var swMock = new Mock<SldWorks>();
swMock.Setup(x => x.RevisionNumber()).Returns("24.0.0");
var res1 = addInExMock1.Object.ConnectToSW(swMock.Object, 0);
var res2 = addInExMock2.Object.ConnectToSW(swMock.Object, 0);
var res3 = addInExMock3.Object.ConnectToSW(swMock.Object, 0);
Assert.IsTrue(connectCalled);
Assert.IsTrue(res1);
Assert.IsFalse(res2);
Assert.IsTrue(res3);
}
[Test]
public void DisconnectFromSWTest()
{
var addInExMock1 = new Mock<SwAddInEx>();
bool disconnectCalled = false;
addInExMock1.Setup(a => a.OnDisconnect()).Callback(
() =>
{
disconnectCalled = true;
});
var addInExMock2 = new Mock<SwAddInEx>();
addInExMock2.Setup(a => a.OnDisconnect())
.Callback(() => throw new Exception());
var swMock = new Mock<SldWorks>();
swMock.Setup(x => x.RevisionNumber()).Returns("24.0.0");
swMock.Setup(m => m.GetCommandManager(It.IsAny<int>()))
.Returns(new Mock<CommandManager>().Object);
var addInExMock3 = new Mock<SwAddInEx>() { CallBase = true };
addInExMock1.Object.ConnectToSW(swMock.Object, 0);
addInExMock2.Object.ConnectToSW(swMock.Object, 0);
addInExMock3.Object.ConnectToSW(swMock.Object, 0);
var res1 = addInExMock1.Object.DisconnectFromSW();
var res2 = addInExMock2.Object.DisconnectFromSW();
var res3 = addInExMock3.Object.DisconnectFromSW();
Assert.IsTrue(disconnectCalled);
Assert.IsTrue(res1);
Assert.IsFalse(res2);
Assert.IsTrue(res3);
}
}
}