using System;
using System.Configuration;
using System.Collections.Generic;
using System.Text;

using NUnit.Framework;

using Baza_Reklam;
using Baza_Reklam.Classes.Repositories;
using Baza_Reklam.Classes.Model;

namespace BazaReklam.Tests
{
    [TestFixture]
    public class ProvisionRepositoryTests
    {
        [Test]
        public void Can_Find_Provision_By_Id()
        {
            ProvisionRepository provisionRepository = new ProvisionRepository();
            provisionRepository.SetConnectionString(ConfigurationManager.ConnectionStrings["BAZA_REKLAM"].ConnectionString);

            Provision provision = provisionRepository.Find(12771);
            Assert.That(provision, Is.Not.Null);
            Assert.That(provision.Agency, Is.EqualTo("GS O/ Gdańsk"));
            Assert.That(provision.Agent, Is.EqualTo("CZARNECKI"));
            Assert.That(provision.Year, Is.EqualTo(2009));
            Assert.That(provision.Month, Is.EqualTo(8));
            Assert.That(provision.InvoiceNumber, Is.EqualTo("248/CZA/2009"));
            Assert.That(provision.Amount, Is.EqualTo(1940.58m));
            Assert.That(provision.Percent, Is.EqualTo(0.16m));
            Assert.That(provision.InvoiceId, Is.EqualTo(75204));
        }

        [Test]
        public void Returns_Null_When_Provision_Not_Found()
        {
            ProvisionRepository provisionRepository = new ProvisionRepository();
            provisionRepository.SetConnectionString(ConfigurationManager.ConnectionStrings["BAZA_REKLAM"].ConnectionString);

            Provision provision = provisionRepository.Find(0);
            Assert.That(provision, Is.Null);
        }
    }
}