diff --git a/src/Tests/Winium.Elements.Desktop.Tests/DataGridTests.cs b/src/Tests/Winium.Elements.Desktop.Tests/DataGridTests.cs index fdf6367..0ce016f 100644 --- a/src/Tests/Winium.Elements.Desktop.Tests/DataGridTests.cs +++ b/src/Tests/Winium.Elements.Desktop.Tests/DataGridTests.cs @@ -22,18 +22,12 @@ public class DataGridTests [Test] public void GetDataGridCell() { - var driverMock = new Mock( - new Mock().Object, - new Mock().Object); + var driverMock = new DriverMocked(); driverMock.Protected() .Setup("Execute", "getDataGridCell", ItExpr.IsAny>()) .Returns(Response.FromJson(@"{value: {ELEMENT: ""dGridCellElementId""}}")); - driverMock.Protected() - .Setup("Execute", "newSession", ItExpr.IsAny>()) - .Returns(Response.FromJson(@"{sessionId : ""AvesomeSession""}")); - var elementMock = new Mock(driverMock.Object, "dGridElementId"); var dataGrid = elementMock.Object.ToDataGrid(); @@ -43,6 +37,39 @@ public void GetDataGridCell() Assert.That(cell, Is.TypeOf(typeof(RemoteWebElement))); } + [Test] + public void GetDataGridColumnCount() + { + var driverMock = new DriverMocked(); + + driverMock.Protected() + .Setup("Execute", "getDataGridColumnCount", ItExpr.IsAny>()) + .Returns(Response.FromJson(@"{value: 2}")); + + var elementMock = new Mock(driverMock.Object, "dGridElementId"); + + var dataGrid = elementMock.Object.ToDataGrid(); + + Assert.That(dataGrid.ColumnCount, Is.EqualTo(2)); + } + + [Test] + public void GetDataGridRowCount() + { + var driverMock = new DriverMocked(); + + driverMock.Protected() + .Setup("Execute", "getDataGridRowCount", ItExpr.IsAny>()) + .Returns(Response.FromJson(@"{value: 2}")); + + var elementMock = new Mock(driverMock.Object, "dGridElementId"); + + var dataGrid = elementMock.Object.ToDataGrid(); + + Assert.That(dataGrid.RowCount, Is.EqualTo(2)); + } + #endregion } + } diff --git a/src/Tests/Winium.Elements.Desktop.Tests/DriverMocked.cs b/src/Tests/Winium.Elements.Desktop.Tests/DriverMocked.cs new file mode 100644 index 0000000..5186afe --- /dev/null +++ b/src/Tests/Winium.Elements.Desktop.Tests/DriverMocked.cs @@ -0,0 +1,29 @@ +namespace Winium.Elements.Desktop.Tests +{ + #region using + + using System.Collections.Generic; + + using Moq; + using Moq.Protected; + + using OpenQA.Selenium; + using OpenQA.Selenium.Remote; + + #endregion + + public class DriverMocked : Mock + { + #region Constructors and Destructors + + public DriverMocked() + : base(new Mock().Object, new Mock().Object) + { + this.Protected() + .Setup("Execute", "newSession", ItExpr.IsAny>()) + .Returns(Response.FromJson(@"{sessionId : ""AvesomeSession""}")); + } + + #endregion + } +} diff --git a/src/Tests/Winium.Elements.Desktop.Tests/Winium.Elements.Desktop.Tests.csproj b/src/Tests/Winium.Elements.Desktop.Tests/Winium.Elements.Desktop.Tests.csproj index d0bd4e4..1226ccd 100644 --- a/src/Tests/Winium.Elements.Desktop.Tests/Winium.Elements.Desktop.Tests.csproj +++ b/src/Tests/Winium.Elements.Desktop.Tests/Winium.Elements.Desktop.Tests.csproj @@ -34,21 +34,22 @@ - ..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll + ..\..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll True - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True - ..\packages\Selenium.WebDriver.2.46.0\lib\net40\WebDriver.dll + ..\..\packages\Selenium.WebDriver.2.46.0\lib\net40\WebDriver.dll True + diff --git a/src/Winium.Elements.Desktop/DataGrid.cs b/src/Winium.Elements.Desktop/DataGrid.cs index f0353fe..0b069e8 100644 --- a/src/Winium.Elements.Desktop/DataGrid.cs +++ b/src/Winium.Elements.Desktop/DataGrid.cs @@ -15,6 +15,10 @@ public class DataGrid : DesktopElement private const string GetDataGridCell = "getDataGridCell"; + private const string GetDataGridColumnCount = "getDataGridColumnCount"; + + private const string GetDataGridRowCount = "getDataGridRowCount"; + #endregion #region Constructors and Destructors @@ -23,7 +27,15 @@ static DataGrid() { CommandInfoRepository.Instance.TryAddCommand( GetDataGridCell, - new CommandInfo("POST", "/session/{sessionId}/element/{id}/cell/{row}/{column}")); + new CommandInfo("POST", "/session/{sessionId}/element/{id}/datagrid/cell/{row}/{column}")); + + CommandInfoRepository.Instance.TryAddCommand( + GetDataGridColumnCount, + new CommandInfo("POST", "/session/{sessionId}/element/{id}/datagrid/column/count")); + + CommandInfoRepository.Instance.TryAddCommand( + GetDataGridRowCount, + new CommandInfo("POST", "/session/{sessionId}/element/{id}/datagrid/row/count")); } public DataGrid(IWebElement element) @@ -33,6 +45,32 @@ public DataGrid(IWebElement element) #endregion + #region Public Properties + + public int ColumnCount + { + get + { + var parameters = new Dictionary { { "id", this.WrappedElement.GetId() } }; + var response = this.WrappedElement.Execute(GetDataGridColumnCount, parameters); + + return int.Parse(response.Value.ToString()); + } + } + + public int RowCount + { + get + { + var parameters = new Dictionary { { "id", this.WrappedElement.GetId() } }; + var response = this.WrappedElement.Execute(GetDataGridRowCount, parameters); + + return int.Parse(response.Value.ToString()); + } + } + + #endregion + #region Public Methods and Operators public RemoteWebElement GetCell(int row, int column)