⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testunforgivingbuilder.java

📁 本书透彻讲解了经典的《设计模式:可复用面向对象软件的基础》一书涵盖的23种基本设计模式。本书将这些设计模式分成五类:接口型模式、责任型模式、构造型模式、操作型模式
💻 JAVA
字号:
package com.oozinoz.reservation;

import java.util.*;

/**
 * Test UnforgivingBuilder.
 *
 * @author Steve Metsker
 */
public class TestUnforgivingBuilder
extends junit.framework.TestCase 
{
/**
 * Create an instance with the given name. 
 *
 * @param name a name for these tests
 */
public TestUnforgivingBuilder(String name)
{
	super(name);
}
/**
 * Run the test- methods of this class.
 */
public static void main(String[] args)
{
	new junit.awtui.TestRunner().start(
		new String[] { "com.oozinoz.reservation.TestUnforgivingBuilder" });
}
/**
 * Test that we disallow a too low figure for dollars/head.
 */
public void testLowDollars()
{
	String sample =
		"Date, November 5, Headcount, 250, "
			+ "City, Springfield, DollarsPerHead, 1.95, "
			+ "HasSite, No";
	ReservationBuilder b = new UnforgivingBuilder();
	new ReservationParser(b).parse(sample);
	try
	{
		Reservation r = b.build();
	}
	catch (BuilderException e)
	{
		return;
	}
	fail("low dollars slipped through");
}
/**
 * Test that we disallow a too low figure for headcount.
 */
public void testLowHeadCount()
{
	String s =
		"Date, November 5, Headcount, 2, "
			+ "City, Springfield, DollarsPerHead, 9.95, "
			+ "HasSite, No";
	ReservationBuilder b = new UnforgivingBuilder();
	new ReservationParser(b).parse(s);
	try
	{
		Reservation r = b.build();
	}
	catch (BuilderException e)
	{
		return;
	}
	fail("low head count slipped through");
}
/**
 * Test that we disallow missing dollars.
 */
public void testNoDollars()
{
	String sample =
		"Date, November 5, Headcount, 250, "
			+ "City, Springfield, "
			+ "HasSite, No";
	ReservationBuilder b = new UnforgivingBuilder();
	new ReservationParser(b).parse(sample);
	try
	{
		Reservation r = b.build();
	}
	catch (BuilderException e)
	{
		return;
	}
	fail("no dollars slipped through");
}
/**
 * Test that we disallow missing headcount.
 */
public void testNoHeadCount()
{
	String s =
		"Date, November 5, "
			+ "City, Springfield, DollarsPerHead, 9.95, "
			+ "HasSite, No";
	ReservationBuilder b = new UnforgivingBuilder();
	new ReservationParser(b).parse(s);
	try
	{
		Reservation r = b.build();
	}
	catch (BuilderException e)
	{
		return;
	}
	fail("bad head count slipped through");
}
/**
 * Test a normal reservation.
 */
public void testNormal() throws BuilderException 
{
	String s =
		"Date, November 5, Headcount, 250, City, Springfield, "
			+ "DollarsPerHead, 9.95, HasSite, No";
	UnforgivingBuilder b = new UnforgivingBuilder();
	ReservationParser p = new ReservationParser(b);
	p.parse(s);
	Reservation r = b.build();
	//
	Calendar c = Calendar.getInstance();
	c.clear();
	c.set(2000, Calendar.NOVEMBER, 5);
	TestForgivingBuilder.futurize(c);
	//
	assertEquals(c.getTime(), r.date);
	assertEquals(250, r.headcount);
	assertEquals("Springfield", r.city);
	assertEquals(9.95, r.dollarsPerHead, .01);
	assertEquals(false, r.hasSite);
}
/**
 * Test that we disallow missing city.
 */
public void testUnforgivingNoCity()
{
	String s =
		"Date, November 5, Headcount, 250, "
			+ "DollarsPerHead, 9.95, "
			+ "HasSite, No";
	ReservationBuilder b = new UnforgivingBuilder();
	new ReservationParser(b).parse(s);
	try
	{
		Reservation r = b.build();
	}
	catch (BuilderException e)
	{
		return;
	}
	fail("bad city slipped through");
}
/**
 * Test that we disallow missing date.
 */
public void testUnforgivingNoDate()
{
	String s =
		"Headcount, 250, "
			+ "City, Springfield, DollarsPerHead, 9.95, "
			+ "HasSite, No";
	ReservationBuilder b = new UnforgivingBuilder();
	new ReservationParser(b).parse(s);
	try
	{
		Reservation r = b.build();
	}
	catch (BuilderException e)
	{
		return;
	}
	fail("bad date slipped through");
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -