PetaPoco now defaults to SQLite, requires WHERE on exists calls

pull/4/head
kay.one 13 years ago
parent 852b1e9bb5
commit 907c508a70

@ -1,9 +1,11 @@
// ReSharper disable RedundantUsingDirective // ReSharper disable RedundantUsingDirective
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using AutoMoq;
using FizzWare.NBuilder; using FizzWare.NBuilder;
using FluentAssertions; using FluentAssertions;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Core.Providers;
using NzbDrone.Core.Repository; using NzbDrone.Core.Repository;
using NzbDrone.Core.Repository.Quality; using NzbDrone.Core.Repository.Quality;
using NzbDrone.Core.Test.Framework; using NzbDrone.Core.Test.Framework;
@ -63,6 +65,39 @@ namespace NzbDrone.Core.Test
fetch.Allowed.Should().HaveCount(0); fetch.Allowed.Should().HaveCount(0);
} }
[Test]
public void Update_Success()
{
//Arrange
var mocker = new AutoMoqer();
var db = MockLib.GetEmptyDatabase();
mocker.SetConstant(db);
var testProfile = new QualityProfile
{
Name = Guid.NewGuid().ToString(),
Cutoff = QualityTypes.SDTV
};
//Act
var id = Convert.ToInt32(db.Insert(testProfile));
var currentProfile = db.SingleOrDefault<QualityProfile>(id);
//Update
currentProfile.Cutoff = QualityTypes.Bluray720p;
mocker.Resolve<QualityProvider>().Update(currentProfile);
var updated = mocker.Resolve<QualityProvider>().Get(currentProfile.QualityProfileId);
//Assert
updated.Name.Should().Be(currentProfile.Name);
updated.Cutoff.Should().Be(QualityTypes.Bluray720p);
updated.AllowedString.Should().Be(currentProfile.AllowedString);
}
[Test] [Test]
public void Test_Series_Quality() public void Test_Series_Quality()
{ {

@ -316,7 +316,7 @@ namespace PetaPoco
Oracle, Oracle,
SQLite SQLite
} }
DBType _dbType = DBType.SqlServer; DBType _dbType = DBType.SQLite;
// Common initialization // Common initialization
private void CommonConstruct() private void CommonConstruct()
@ -1256,18 +1256,18 @@ namespace PetaPoco
case DBType.SQLite: case DBType.SQLite:
case DBType.MySql: case DBType.MySql:
{ {
existsTemplate = "SELECT EXISTS (SELECT 1 FROM {0} WHERE {1})"; existsTemplate = "SELECT EXISTS (SELECT 1 FROM {0} {1})";
break; break;
} }
case DBType.SqlServer: case DBType.SqlServer:
{ {
existsTemplate = "IF EXISTS (SELECT 1 FROM {0} WHERE {1}) SELECT 1 ELSE SELECT 0"; existsTemplate = "IF EXISTS (SELECT 1 FROM {0} {1}) SELECT 1 ELSE SELECT 0";
break; break;
} }
default: default:
{ {
existsTemplate = "SELECT COUNT(*) FROM {0} WHERE {1}"; existsTemplate = "SELECT COUNT(*) FROM {0} {1}";
break; break;
} }
} }

@ -80,7 +80,7 @@ namespace NzbDrone.Core.Providers
{ {
Logger.Trace("Importing file to database [{0}]", filePath); Logger.Trace("Importing file to database [{0}]", filePath);
if (_database.Exists<EpisodeFile>("Path =@0", Parser.NormalizePath(filePath))) if (_database.Exists<EpisodeFile>("WHERE Path =@0", Parser.NormalizePath(filePath)))
{ {
Logger.Trace("[{0}] already exists in the database. skipping.", filePath); Logger.Trace("[{0}] already exists in the database. skipping.", filePath);
return null; return null;

Loading…
Cancel
Save