Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Superclass #71

Open
wants to merge 5 commits into
base: Marija_Mahajkova
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions CourseApp.Tests/CityTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
using System;
using Xunit;

namespace CourseApp.Tests
{
public class CityTest
{
[Theory]
[InlineData("Name", 1, 18156)]
[InlineData("Name1", 3, 9547156)]
public void TestConstructorThreeParametrs(string name, int population, int square)
{
var item = new City(name, population, square);
Assert.Equal(population, item.Population);
Assert.Equal(name, item.Name);
Assert.Equal(square, item.Square);
}

[Fact]
public void TestConstructorTwoParametrs()
{
var item = new City("Name", 300000);
Assert.Equal(300000, item.Population);
Assert.Equal("Name", item.Name);
Assert.Equal(0, item.Square);
}

[Fact]
public void TestConstructorOneParametrs()
{
var item = new City("Name2");
Assert.Equal(1, item.Population);
Assert.Equal("Name2", item.Name);
Assert.Equal(0, item.Square);
}

[Fact]
public void TestEmptyConstructor()
{
var item = new City();
Assert.Equal(1, item.Population);
Assert.Equal("Unnamed", item.Name);
Assert.Equal(0, item.Square);
}

[Fact]
public void TestSetPopulation()
{
var item = new City();
item.Population = 500000;
Assert.Equal(500000, item.Population);
}

[Fact]
public void TestIncorrectSetPopulation()
{
try
{
var item = new City();
item.Population = -5;
}
catch (System.Exception)
{
Console.WriteLine("Population should be > 1");
Assert.True(true);
}
}

[Fact]
public void TestCorrectIncorrectSetPopulation()
{
var item = new City();
try
{
item.Population = 10;
item.Population = -5;
}
catch (System.Exception)
{
Console.WriteLine("Population should be > 1");
Assert.True(true);
}

Assert.Equal(10, item.Population);
}
}
}
2 changes: 1 addition & 1 deletion CourseApp.Tests/CourseApp.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp2.1</TargetFramework>
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
<NoWarn>1573,1591,1701;1702;1705</NoWarn>
<IsPackable>false</IsPackable>
Expand Down
87 changes: 87 additions & 0 deletions CourseApp.Tests/VillageTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
using System;
using Xunit;

namespace CourseApp.Tests
{
public class VillageTest
{
[Theory]
[InlineData("Name", 1, 18156)]
[InlineData("Name1", 3, 95476)]
public void TestConstructorThreeParametrs(string name, int population, int square)
{
var item = new Village(name, population, square);
Assert.Equal(population, item.Population);
Assert.Equal(name, item.Name);
Assert.Equal(square, item.Square);
}

[Fact]
public void TestConstructorTwoParametrs()
{
var item = new Village("Name", 300000);
Assert.Equal(300000, item.Population);
Assert.Equal("Name", item.Name);
Assert.Equal(0, item.Square);
}

[Fact]
public void TestConstructorOneParametrs()
{
var item = new Village("Name2");
Assert.Equal(1, item.Population);
Assert.Equal("Name2", item.Name);
Assert.Equal(0, item.Square);
}

[Fact]
public void TestEmptyConstructor()
{
var item = new Village();
Assert.Equal(1, item.Population);
Assert.Equal("Unnamed", item.Name);
Assert.Equal(0, item.Square);
}

[Fact]
public void TestSetPopulation()
{
var item = new Village();
item.Population = 354900;
Assert.Equal(354900, item.Population);
}

[Fact]
public void TestIncorrectSetPopulation()
{
try
{
var item = new City();
item.Population = -5;
}
catch (System.Exception)
{
Console.WriteLine("Population should be > 1");
Assert.True(true);
}
}

[Fact]
public void TestCorrectIncorrectSetPopulation()
{
var item = new Village();
try
{
item.Population = 10;
item.Population = -5;
}
catch (System.Exception)
{
Console.WriteLine("Population should be > 1");
Assert.True(true);
}

Assert.Equal(10, item.Population);
}
}
}
83 changes: 83 additions & 0 deletions CourseApp/City.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace CourseApp
{
public class City : Settlement
{
public City()
: base("Unnamed")
{
}

public City(string name)
: base(name, 1)
{
}

public City(string name, int population)
: this(name, population, 0)
{
}

public City(string name, int population, int square)
: this(name, population, square, false)
{
mahaikova marked this conversation as resolved.
Show resolved Hide resolved
Name = name;
Population = population;
Square = square;
}

public City(string name, int population, int square, bool isCapital)
: base(name, population, square)
{
Name = name;
Population = population;
Square = square;
IsCapital = isCapital;
}

public bool IsCapital { get; set; }

public override int Population
{
set
{
if (value >= 0 && value < 70000000)
{
base.Population = value;
}
else
{
throw new System.Exception("Wrong population");
}
}
}

public override int Square
{
get
{
return base.Square;
}

set
{
if (value >= 0 && value <= 100000000)
{
base.Square = value;
}
else
{
throw new System.Exception("Wrong square");
}
}
}

public override string ToString()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может какой нибудь специфический только для города метод - например isCapital... но это не обязательно

{
return $"Name of City:{Name},Population of City:{Population}, Square of City:{Square}";
}
}
}
2 changes: 1 addition & 1 deletion CourseApp/CourseApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp2.1</TargetFramework>
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
<NoWarn>1573,1591,1701;1702;1705;</NoWarn>
</PropertyGroup>
Expand Down
81 changes: 81 additions & 0 deletions CourseApp/Settlement.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace CourseApp
{
public abstract class Settlement
{
private int population;
private int square;

public Settlement()
: this("Unnamed")
{
}

public Settlement(string name)
: this(name, 1)
{
}

public Settlement(string name, int population)
: this(name, population, 0)
{
}

public Settlement(string name, int population, int square)
{
Name = name;
Population = population;
Square = square;
}

public string Name { get; set; }

public virtual int Population
{
get
{
return population;
}

set
{
if (value >= 0)
{
population = value;
}
else
{
throw new System.Exception("Wrong population");
}
}
}

public virtual int Square
{
get
{
return square;
}

set
{
if (value >= 0)
{
square = value;
}
else
{
throw new System.Exception("Wrong square");
}
}
}

public override string ToString()
{
return $"Name:{Name},Population:{Population}, Square:{Square}";
mahaikova marked this conversation as resolved.
Show resolved Hide resolved
}
}
}
Loading