miniSql

创建
zgc123@gmail.com authored at 11/19/2023 1:40:15 AM
4.77 KiB
DBConnectionDefinitionListTests.cs
#region License
// Copyright 2005-2019 Paul Kohler (https://github.com/paulkohler/minisqlquery). All rights reserved.
// This source code is made available under the terms of the GNU Lesser General Public License v3.0
// https://github.com/paulkohler/minisqlquery/blob/master/LICENSE
#endregion
using FluentAssertions;
using MiniSqlQuery.Core;
using NUnit.Framework;

namespace MiniSqlQuery.Tests
{
    [TestFixture]
    public class DbConnectionDefinitionListTests
    {
        [Test]
        public void Can_add_DbConnectionDefinition_object()
        {
            DbConnectionDefinitionList definitionList = new DbConnectionDefinitionList();
            definitionList.DefaultName = "def";
            definitionList.Definitions = new[]
                                         {
                                             new DbConnectionDefinition {ConnectionString = "cs1", Name = "nm1", ProviderName = "p1"},
                                             new DbConnectionDefinition {ConnectionString = "cs2", Name = "nm2", ProviderName = "p2"}
                                         };
            Assert.That(definitionList.Definitions.Length, Is.EqualTo(2));
            definitionList.AddDefinition(new DbConnectionDefinition { ConnectionString = "cs3", Name = "nm3", ProviderName = "p3" });
            Assert.That(definitionList.Definitions.Length, Is.EqualTo(3));
        }

        [Test]
        public void Can_Deserialize_a_DbConnectionDefinitionList_from_XML_string()
        {
            string xml =
                @"<DbConnectionDefinitionList xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
  <DefaultName>default</DefaultName>
  <Definitions>
    <DbConnectionDefinition>
      <Name>nm1</Name>
      <ConnectionString>cs1</ConnectionString>
    </DbConnectionDefinition>
    <DbConnectionDefinition>
      <Name>nm2</Name>
      <ConnectionString>cs2</ConnectionString>
    </DbConnectionDefinition>
  </Definitions>
</DbConnectionDefinitionList>";

            DbConnectionDefinitionList definitionList = DbConnectionDefinitionList.FromXml(xml);
            Assert.That(definitionList.DefaultName, Is.EqualTo("default"));
            Assert.That(definitionList.Definitions[0].Name, Is.EqualTo("nm1"));
            Assert.That(definitionList.Definitions[0].ConnectionString, Is.EqualTo("cs1"));
            Assert.That(definitionList.Definitions[1].Name, Is.EqualTo("nm2"));
        }

        [Test]
        public void Can_remove_a_DbConnectionDefinition_object()
        {
            DbConnectionDefinitionList definitionList = new DbConnectionDefinitionList();
            definitionList.DefaultName = "def";
            var conn1 = new DbConnectionDefinition { ConnectionString = "cs1", Name = "nm1", ProviderName = "p1" };
            var conn2 = new DbConnectionDefinition { ConnectionString = "cs2", Name = "nm2", ProviderName = "p2" };
            var conn3unused = new DbConnectionDefinition { ConnectionString = "cs3", Name = "nm3", ProviderName = "p3" };
            definitionList.Definitions = new[] { conn1, conn2 };
            Assert.That(definitionList.Definitions.Length, Is.EqualTo(2));
            bool remove1 = definitionList.RemoveDefinition(conn2);
            Assert.That(remove1, Is.EqualTo(true));
            Assert.That(definitionList.Definitions.Length, Is.EqualTo(1));
            Assert.That(definitionList.Definitions[0].Name, Is.EqualTo("nm1"));
            bool remove2 = definitionList.RemoveDefinition(conn3unused);
            Assert.That(remove2, Is.EqualTo(false));
            Assert.That(definitionList.Definitions.Length, Is.EqualTo(1));
        }

        [Test]
        public void Can_serialize_a_DbConnectionDefinitionList()
        {
            DbConnectionDefinitionList definitionList = new DbConnectionDefinitionList();
            definitionList.DefaultName = "def";
            definitionList.Definitions = new[]
                                         {
                                             new DbConnectionDefinition {ConnectionString = "cs1", Name = "nm1", ProviderName = "p1"},
                                             new DbConnectionDefinition {ConnectionString = "cs2", Name = "nm2", ProviderName = "p2"}
                                         };
            string xml = definitionList.ToXml();
            //Console.WriteLine(xml);
            xml.Should().Contain("<DefaultName>def</DefaultName>");
            xml.Should().Contain("<Name>nm1</Name>");
            xml.Should().Contain("<ConnectionString>cs1</ConnectionString>");
            xml.Should().Contain("<ProviderName>p1</ProviderName>");
            xml.Should().Contain("<Name>nm2</Name>");
            xml.Should().Contain("<ConnectionString>cs2</ConnectionString>");
            xml.Should().Contain("<ProviderName>p2</ProviderName>");
        }
    }
}