/**
* Copyright 2012-2013 Maciej Jaworski, Mariusz Kapcia, Paweł Kędzia, Mateusz Kubuszok
*
* <p>Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at</p>
*
* <p>http://www.apache.org/licenses/LICENSE-2.0</p>
*
* <p>Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.</p>
*/
package com.autoupdater.gui.mocks;
import java.util.Arrays;
import java.util.SortedSet;
import java.util.TreeSet;
import com.autoupdater.client.environment.EnvironmentData;
import com.autoupdater.client.environment.settings.ClientSettings;
import com.autoupdater.client.environment.settings.ClientSettingsBuilder;
import com.autoupdater.client.environment.settings.ProgramSettings;
import com.autoupdater.client.environment.settings.ProgramSettingsBuilder;
import com.autoupdater.client.models.BugEntry;
import com.autoupdater.client.models.BugEntryBuilder;
import com.autoupdater.client.models.ChangelogEntry;
import com.autoupdater.client.models.ChangelogEntryBuilder;
import com.autoupdater.client.models.Package;
import com.autoupdater.client.models.PackageBuilder;
import com.autoupdater.client.models.Program;
import com.autoupdater.client.models.ProgramBuilder;
public class MockModels {
private static SortedSet<Program> installedPrograms;
private static EnvironmentData environmentData;
private static ClientSettings clientSettings;
private static SortedSet<ProgramSettings> programsSettings;
public static EnvironmentData getEnvironmentData() {
return (environmentData != null) ? environmentData
: (environmentData = new EnvironmentData(getClientSettings(), getProgramsSettings()));
}
public static ClientSettings getClientSettings() {
return (clientSettings != null) ? clientSettings : (clientSettings = ClientSettingsBuilder
.builder().setClientName(Values.ClientSettings.clientName)
.setClientExecutableName(Values.ClientSettings.clientExecutableName)
.setPathToClient(Paths.Library.clientPath)
.setPathToClientDirectory(Paths.Library.clientDir)
.setPathToInstaller(Paths.Library.installerPath).build());
}
public static SortedSet<ProgramSettings> getProgramsSettings() {
if (programsSettings != null)
return programsSettings;
programsSettings = new TreeSet<ProgramSettings>();
programsSettings.add(ProgramSettingsBuilder.builder()
.setProgramName(Values.ProgramSettings.programName)
.setProgramExecutableName(Values.ProgramSettings.programExecutableName)
.setPathToProgramDirectory(Paths.Installations.Program.programDir)
.setPathToProgram(Paths.Installations.Program.programPath)
.setServerAddress(Values.ProgramSettings.serverAddress)
.setDevelopmentVersion(Values.ProgramSettings.developmentVersion).build());
return programsSettings;
}
public static SortedSet<Program> getInstalledPrograms() {
if (installedPrograms != null)
return installedPrograms;
installedPrograms = new TreeSet<Program>();
SortedSet<Package> packages = new TreeSet<Package>();
packages.add(PackageBuilder
.builder()
.setName("Package 1.1")
.setID("1")
.setVersionNumber("1.0.0.0")
.setChangelog(
new TreeSet<ChangelogEntry>(Arrays.asList(ChangelogEntryBuilder.builder()
.setDescription("Initial public release")
.setVersionNumber("1.0.0.0").build()))).build());
packages.add(PackageBuilder
.builder()
.setName("Package 1.2")
.setID("2")
.setVersionNumber("1.1.0.0")
.setChangelog(
new TreeSet<ChangelogEntry>(Arrays.asList(ChangelogEntryBuilder.builder()
.setDescription("Initial public release")
.setVersionNumber("1.1.0.0").build()))).build());
installedPrograms.add(ProgramBuilder
.builder()
.setName("Program 1")
.setPathToProgramDirectory("C:\\Program1")
.setServerAddress("http://repo.program1.com")
.setPackages(packages)
.setBugs(
new TreeSet<BugEntry>(Arrays.asList(BugEntryBuilder.builder()
.setDescription("Some known bug").build()))).build());
packages.add(PackageBuilder
.builder()
.setName("Package 2.1")
.setID("3")
.setVersionNumber("1.0.1.0")
.setChangelog(
new TreeSet<ChangelogEntry>(Arrays.asList(ChangelogEntryBuilder.builder()
.setDescription("Initial public release")
.setVersionNumber("1.0.1.0").build()))).build());
packages.add(PackageBuilder
.builder()
.setName("Package 2.2")
.setID("4")
.setVersionNumber("1.0.0.1")
.setChangelog(
new TreeSet<ChangelogEntry>(Arrays.asList(ChangelogEntryBuilder.builder()
.setDescription("Initial public release")
.setVersionNumber("1.0.0.1").build()))).build());
installedPrograms.add(ProgramBuilder
.builder()
.setName("Program 2")
.setPathToProgramDirectory("C:\\Program2")
.setServerAddress("http://repo.program2.com")
.setPackages(packages)
.setBugs(
new TreeSet<BugEntry>(Arrays.asList(BugEntryBuilder.builder()
.setDescription("Some other known bug").build()))).build());
return installedPrograms;
}
public static Program getInstalledProgram() {
return getInstalledPrograms().first();
}
public static SortedSet<Package> getInstalledPackages() {
return getInstalledProgram().getPackages();
}
public static Package getInstalledPackage() {
return getInstalledPackages().first();
}
}